Data Structure&Algorithm/Greedy

캥거루 세마리2 - [백준 11034번]

beeimp 2021. 7. 14. 17:50

캥거루 세마리2 - 백준 11034번

문제

캥거루 세 마리가 사막에서 놀고 있다. 사막에는 수직선이 하나 있고, 캥거루는 서로 다른 한 좌표 위에 있다.

한 번 움직일 때, 바깥쪽의 두 캥거루 중 한 마리가 다른 두 캥거루 사이의 정수 좌표로 점프한다. 한 좌표 위에 있는 캥거루가 두 마리 이상일 수는 없다.

캥거루는 최대 몇 번 움직일 수 있을까?

입력

여러개의 테스트 케이스로 이루어져 있으며, 세 캥거루의 초기 위치 A, B, C가 주어진다. (0 < A < B < C < 100)

출력

각 테스트에 대해 캥거루가 최대 몇 번 움직일 수 있는지 출력한다.

풀이

  • 그리디 알고리즘??

코드

import sys

def threeKangaroo(a, b, c):
  a, b, c = sorted([a, b, c]) # 정렬
  left, right = b - a, c - b # 왼쪽과 오른쪽의 차
  return left - 1 if left > right else right - 1 # 최종 이동 횟수

'''여러 줄 입력받기'''
inputs = []
for readline in sys.stdin.readlines():
  inputs.append(map(int, readline.split()))

for a, b, c in inputs:
  print(threeKangaroo(a, b, c))