문제
세 캥거루가 일직선 위에 있을 때, 양 끝 캥거루가 안쪽으로 점프하여 최대 몇 번 점프할 수 있는지 구하라. 한 번에 한 칸씩, 다른 캥거루 사이의 빈 칸으로만 이동 가능하다.
입력
세 캥거루의 위치 A, B, C가 오름차순으로 주어진다.
출력
최대 점프 횟수를 출력한다.
예제
| 입력 | 출력 |
|---|---|
2 3 5 | 1 |
풀이
두 구간 중 더 넓은 간격이 최대 점프 횟수를 결정한다.
- 왼쪽 구간의 빈 칸 수:
B - A - 1 - 오른쪽 구간의 빈 칸 수:
C - B - 1 - 두 값 중 큰 쪽이 최대 점프 횟수이다
핵심 아이디어: 넓은 구간 쪽의 캥거루가 한 칸씩 안으로 들어오면 매 점프마다 빈 칸이 하나씩 줄어들므로, 최대 빈 칸 수가 답이다.
코드
A, B, C = map(int, input().split())
print(max(B - A - 1, C - B - 1))복잡도
- 시간: O(1)
- 공간: O(1)