https://www.acmicpc.net/problem/1057
문제 풀이
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1 2 3 4 5 6 7 8
1 2 3 4
1 2
숫자의 규칙만 알면 풀 수 있는 문제입니다.
예시 16강의 김씨: 8, 임씨: 9 인 경우, 위의 숫자처럼
8->4->2->1
9->5->3->2 로 숫자가 변합니다.
즉 해당 숫자에서 1을 더한 값에 나머지를 제외한 나누기 (//)를 계속 해주는 방식입니다.
이를 while 문에 대입하여, 두 숫자가 일치해질 때까지 카운트를 해주면 됩니다.
n, k, l = map(int, input().split())
cnt = 0
while k != l:
k = (k+1) // 2
l = (l+1) // 2
cnt += 1
print(cnt)
'Algorithm' 카테고리의 다른 글
[파이썬] Codility - Lesson 3 Time Complexity: PermMissingElem (0) | 2021.07.24 |
---|---|
[파이썬] 백준: 돌게임5 (0) | 2021.07.14 |
[파이썬] 프로그래머스: 2016년 (0) | 2021.07.09 |
[파이썬] 백준 1475번: 방번호 (0) | 2021.07.07 |
[파이썬] 백준 1927번, 11279번, 11286번: 최소 힙, 최대 힙, 절대값 힙 (0) | 2021.07.06 |