예상 대진표
천천히 생각해보면 정말 간단한 문제 !
토너먼트 형식이기 때문에
1,2 -> 1
3,4 -> 2
5,6 -> 3
...
이 계산을 반복하면서 라운드 수를 카운트 해주고,
a, b 가 만났을 때 반복을 종료하면 된다.처음엔 그냥 a와 b가 1이 될 때가 만날 때라고 생각했는데
왜 둘이 만나는건 당연히 결승이라고 생각했을까..?
a와 b가 같아지면 반복을 종료하고 이 때까지의 라운드 수를 리턴한다.참 재미있었다 끗!
def solution(n, a, b): answer = 0 a, b = min(a, b), max(a, b) # while not a == b == 1: # 중간에 만나는 것을 고려 안한 조건 while a != b: answer += 1 a, b = (a + 1) // 2, (b + 1) // 2 return answer