N 명이 참가하는 게임 토너먼트가 개최 되었다
대진 방법은 1-2번 3-4번... N-1번 - N번 식으로 짝을 지어 대진 한다
1-2에서 1이 이기고 3-4 에서 4가 이기면 1은 1번, 4는 2번 이런식으로 다시 번호를 매긴다고 한다
처음 라운드에서 A번 참가자가 경쟁자로 생각하는 B 번 참가자를 몇 라운드에서 만날지 궁금하다고 한다..

만날때까지 A,B 는 계속 이긴다는 것을 전제로 한다!
N 은 2의 지수 승으로 주어져서 부전승은 없다!
대진 방법을 보면..
두명씩 순서대로 짝을 짓는다
결국 계속 이긴다면 내 번호는 계속 /2 가 되는 것이라는게 보였다!
그리고.. A,B 가 만나는 경우는 번호가 1이 차이가 나면서도 2번 3번 이런식은 안되고
큰 번호가 짝수이고 작은 번호가 홀수인 경우면 된다!
그래서 최종 코드는..~
import math
def solution(n,a,b):
c=1
while True:
if max(a,b)%2==0 and (max(a,b)-1)==min(a,b):
break
a = math.ceil(a/2)
b = math.ceil(b/2)
c+=1
return c
완전 간단하다..!
그리고 처음에 round 함수를 썼다가 틀렸었는데 round 는 "오사오입" 방식이라 안된다!
오사오입 방식은 소수점 첫째자리가 5 라면, 앞의 수가 짝수면 소수점을 버리고 홀수면 올린다!
이건 항상 주의해야 할 듯!
