[프로그래머스 Level2] 예상 대진표

CHOI YUN HO·2021년 5월 16일
0

알고리즘 문제풀이

목록 보기
32/63

📃 문제 설명

예상 대진표

[문제 출처 : 프로그래머스]

👨‍💻 해결 방법

천천히 생각해보면 정말 간단한 문제 !
토너먼트 형식이기 때문에
1,2 -> 1
3,4 -> 2
5,6 -> 3
...
이 계산을 반복하면서 라운드 수를 카운트 해주고,
a, b 가 만났을 때 반복을 종료하면 된다.

처음엔 그냥 a와 b가 1이 될 때가 만날 때라고 생각했는데
왜 둘이 만나는건 당연히 결승이라고 생각했을까..?
a와 b가 같아지면 반복을 종료하고 이 때까지의 라운드 수를 리턴한다.

참 재미있었다 끗!

👨‍💻 소스 코드

def solution(n, a, b):
    answer = 0
    a, b = min(a, b), max(a, b)

    # while not a == b == 1:  # 중간에 만나는 것을 고려 안한 조건
    while a != b:
        answer += 1
        a, b = (a + 1) // 2, (b + 1) // 2
    return answer
profile
가재같은 사람

0개의 댓글