[백준 1057] 토너먼트

Junyoung Park·2022년 7월 5일
0

코딩테스트

목록 보기
483/631
post-thumbnail

1. 문제 설명

토너먼트

2. 문제 분석

현재 라운드 경기 수 n의 홀짝 여부에 따라서 경기 순서가 달라진다. get_round 함수를 통해 이를 체크, 같은 라운드에 경기할 경우 플래그 비트를 참으로 변경, 반복문을 탈출한다.

3. 나의 풀이

import sys

def get_round(n):
    if n % 2 == 0:
        return n // 2
    else:
        return (n // 2) + 1

n, a, b = map(int, sys.stdin.readline().rstrip().split())
answer = 1
flag = False

while n != 1:
    cur_a = get_round(a)
    cur_b = get_round(b)
    if cur_a == cur_b:
        flag = True
        break

    n = get_round(n)
    a = cur_a
    b = cur_b
    answer += 1

if flag: print(answer)
else: print(-1)
profile
JUST DO IT

0개의 댓글