2025년 경기모바일과학고등학교 1학기 전공심화 자바프로그래밍반
문제: 캥거루 점프 놀이
사막 위에 세 마리의 캥거루가 줄을 따라 서 있어요. 줄은 0에서 100 사이의 숫자가 적힌 한 줄(수직선)이에요. 세 마리 캥거루는 서로 다른 위치에 서 있고, 한 위치에 두 마리가 모일 수 없어요.
🎲 한 번 움직이는 방법
- 바깥쪽에 있는 캥거루(맨 왼쪽 또는 맨 오른쪽) 중 한 마리가
- 다른 두 캥거루 사이의 빈 곳으로 한 번에 점프해요.
- 점프할 때는 정수 위치여야 하고, 이미 누군가 서 있으면 못 가요.
예를 들어, 위치가 2, 5, 7이라면
- 왼쪽 캥거루(2)는 5와 7 사이인 6으로,
- 오른쪽 캥거루(7)는 2와 5 사이인 3 또는 4로 한 번에 점프할 수 있어요.
❓ 문제
캥거루들이 더 이상 움직일 수 없을 때까지, 최대 몇 번 움직일 수 있을까요?
🔢 입력 형식
A B C
A
,B
,C
는 캥거루의 시작 위치- 0 < A < B < C < 100
- 모두 정수예요.
✅ 출력 형식
- 캥거루가 최대로 움직일 수 있는 횟수를 하나의 정수로 출력하세요.
🧪 입력 예시 1
2 3 5
예시 1 설명
- 처음 위치는 2, 3, 5
- 맨 왼쪽(2)이 3과 5 사이인 4로 점프하면 위치가 3, 4, 5가 돼요.
- 그 뒤에는 두 칸 사이에 빈 곳이 없어서 더 이상 못 움직여요.
- 움직인 횟수 = 1
출력 예시 1
1
🧪 입력 예시 2
3 5 9
예시 2 설명
- 맨 오른쪽(9)이 3과 5 사이인 4로 → 위치: 3, 4, 5
-
맨 왼쪽(3)이 4와 5 사이인 아무 데(…4가 비어 있지 않으니…)
- 사실 첫 점프는 3→8이 더 멀리! 하지만 항상 가능한 점프를 최대화하려면
- 매번 더 넓은 간격 쪽에서 한 칸만 들어가는 것이 좋아요.
- 실제 최대로 움직이는 방법을 따라가면 3번까지 가능해요.
출력 예시 2
3
💡 힌트
- 두 캥거루 사이 간격 = 차이
B - A
또는C - B
- 한 번 움직일 때마다 가장 큰 간격 사이에서 1만큼 좁혀요.
- 그래서 최대 움직임 수 =
max(B - A, C - B) - 1