본문 바로가기
알고리즘/[python] 백준 BOJ

[python] 백준 1057 토너먼트

by Alan_Kim 2023. 3. 19.
728x90
반응형

https://www.acmicpc.net/problem/1057

 

1057번: 토너먼트

김지민은 N명이 참가하는 스타 토너먼트에 진출했다. 토너먼트는 다음과 같이 진행된다. 일단 N명의 참가자는 번호가 1번부터 N번까지 배정받는다. 그러고 난 후에 서로 인접한 번호끼리 스타를

www.acmicpc.net

 

문제 해결

  •  사실 계속 이기다보면 어디서든 만나기 때문에 붙기전에는 무조건 이긴다는 가정하에 -1이 나올일은 없다.
  •  (cnt)라운드 (i)조 경기를 치른다고 할 때 다음에는 (cnt+1)라운드 ((i-1)//2 + 1)조 경기를 치룬다.
  •  따라서 처음에 a조 b조의 번호를 받았을 때 나중에 같은 번호가 되는 라운드를 출력하면 된다.

 

CODE

import sys
input = sys.stdin.readline
n, a, b = map(int, input().split())
cnt = 0 # cnt 라운드
while True:
    cnt += 1
    if (a-1)//2 == (b-1)//2:
        break
    a = (a-1)//2 + 1
    b = (b-1)//2 + 1
print(cnt)
728x90
반응형

'알고리즘 > [python] 백준 BOJ' 카테고리의 다른 글

[python] 백준 2631 줄세우기  (0) 2023.03.20
[python] 백준 15683 감시  (0) 2023.03.19
[python] 백준 2468 안전 영역  (0) 2023.03.19
[python] 백준 18310 안테나  (0) 2023.03.18
[python] 백준 10026 적록색약  (0) 2023.03.18

댓글