# 문제
캥거루 세 마리가 사막에서 놀고 있다. 사막에는 수직선이 하나 있고, 캥거루는 서로 다른 한 좌표 위에 있다.
한 번 움직일 때, 바깥쪽의 두 캥거루 중 한 마리가 다른 두 캥거루 사이의 정수 좌표로 점프한다.
한 좌표 위에 있는 캥거루가 두 마리 이상일 수는 없다.
캥거루는 최대 몇 번 움직일 수 있을까?
# 입출력
# Idea
이 문제의 가장 중요한 부분은 "최대 몇 번 움직일 수 있는지" 출력해야한다는 것!
이러한 조건 때문에 아래와 같은 만족해야할 두가지 필요충분조건이 생긴다.
1. 초기 위치 A, B, C 중에서 바깥 A, C 중 이동해야할 element를 정할 때는 A&B와 B&C 사이의 거리의 대소를 정해야한다.
2. 만약 A가 이동하기로 했다면, B와 C의 사이 중 B나 C의 바로 인접한 숫자에 이동해야 최대 횟수를 만들 수 있다.
결과적으로, 두 요소의 거리 중 최댓값의 거리에서 -1을 한 것이 문제에서 리턴해야 할 답이 된다.
# Code
## input test case의 개수가 정해지지 않았기 때문에 while 문을 사용한다
while True :
# input이 주어질 때
try :
a, b, c = map(int, input().split()) # 세 캥거루의 위치
result = max(b-a, c-b) # 두 사이 중 가장 큰 값을 result에 할당
print(result - 1)
# input이 주어지지 않을 때
except :
break
반응형
'Algorithms 💻 > BAEKJOON' 카테고리의 다른 글
[백준] N-Queens 문제(Python) - 백트래킹 (2) | 2022.04.27 |
---|---|
[백준] 1,2,3 더하기(Python) - 백트래킹 & 1차원 dfs 탐색 (0) | 2022.04.20 |
[백준] 로또(Python) - 백트래킹 & 1차원 dfs 탐색 (0) | 2022.04.07 |
[백준] 에디터(Python) - Stack (0) | 2022.03.26 |
[백준] 우유축제 (Python) - Greedy (0) | 2022.01.08 |