여니의 취준 준비/코딩테스트 (Python)

[1057] 토너먼트 in python

여니's 2022. 1. 4. 21:19

라운드 참가자가 홀수라면?

-> 마지막 번호 참가자는 자동 진출

 

라운드 변경시마다 참가자의 번호 재배치
    이때 순서는 처음 번호의 순서를 그대로 유지하면서 1번부터 매긴다.
한명만 남을때까지 라운드를 진행한다 * (조건) *

 

참고로

토너먼트가

한 경기마다 한 팀이 탈락하고

승리한 팀만 다음 라운드로 진출하는 원리이다.


김지민과 임한수는 항상 이긴다!

 

16 8 9 를 예시로 들어보면!

8과 9, 즉 김지민과 임한수는 항상 이긴다고 가정한다.

그러면 첫번째 라운드에서 김지민은 8번째 -> 4번째로 이동되고

임한수는 9번째 -> 5번째로 이동된다.

(물론 다른 숫자들은 임의로 이동시킴, 결과에 영향이 없으므로

왜냐? 어차피 김지민과 임한수만 남을거니까)

 

위 과정을 쭉 하면

김지민과 임한수만 남게 된다.

 

김지민

: 8 -> 4 -> 2 -> 1 -> 1

 

임한수

: 9 -> 5 -> 3 -> 2 -> 1

 

 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1 3 5 8 9 11 13 15
3 8 9 13
8 9

8 -> 4 -> 2 -> 1 || -> 1
9 -> 5 -> 3 -> 2 || -> 1

 

<코드>

n, Kim, Lim = map(int, input().split())
answer = 0
while Kim != Lim:
    Kim -= Kim // 2
    Lim -= Lim // 2
    answer += 1
print(answer)