Python/코딩테스트

[프로그래머스/python] 코딩테스트 연습 Lv.2 예상 대진표

김과분 2024. 1. 8. 11:16
728x90

문제

 

일반 토너먼트 개념과 같음. A, B가 토너먼트로 진행하는 게임에서 만날 라운드 수를 return

입출력 예

Solution

def solution(n,a,b):
    answer = 1

    while((abs(a-b)==1 and min(a, b)%2==1) is False):
        a = int((a+1)/2)
        b = int((b+1)/2)
        answer+=1

    return answer

 

answer: 라운드 수, 1 라운드부터 시작

N-1과 N이 붙게되는 구조이되, N-1이 홀수(N이 짝수)여야 붙을 수 있으므로 while문에 위 조건이 성립될 때까지 반복

성립하지 않으면 아직 붙지 않는 것이고, 항상 이긴다는 가정을 하기 때문에 다음 라운드에 진출할 시 본인이 바뀌는 번호 할당 + 다음 라운드 카운트

조건이 성립하면 라운드 수 return

728x90