📖 문제

📝 풀이 과정

group
을 현재 라운드에서 겨루게 되는 참가자의 쌍에 붙이는 번호라고 하자.
- 참가자
a
와 참가자 b
의 현재 라운드에서의 group
을 구한다.
1-1. 참가자 a
와 참가자 b
의 group
이 같다면 이번 라운드에서 겨루게 됨을 의미한다.
1-2. 참가자 a
와 참가자 b
의 group
이 다르다면 다음 라운드로 올라간다.
-> 현재 라운드에서 참가자의 group 번호(group
)가 다음 라운드에서의 참가자 번호가 된다.
⌨ 코드
def set_group_num(x):
if x % 2 == 0:
return x // 2
else:
return (x+1) // 2
def game(round_, a, b):
a_game_group = set_group_num(a)
b_game_group = set_group_num(b)
if a_game_group == b_game_group:
return round_
else:
return game(round_+1, a_game_group, b_game_group)
def solution(n,a,b):
return game(1, a, b)