- 1, 2, 3, 4, 5, 6, 7, 8을 예시로 들었을때, 다음 라운드에서는 (1, 2 승자), (3, 4 승자), (5, 6 승자), (7, 8 승자)가 도달한다.

- 즉, 본인의 위치가 큰 순서 // 2로 줄게 된다. 따라서 작은 순위인 경우에는 큰 순위로 맞춰준 다음(+1) 2로 나눈다.

- 진행하다가 a == b, 즉, 작은 순위 + 1 = 큰 순위가 될 때 맞붙게 되므로, 그때의 라운드를 리턴해주면 된다.

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

    while True:
        if a % 2 == 1:
            a = a + 1
        if b % 2 == 1:
            b = b + 1
        if a == b:
            break
        answer += 1
        a = a // 2
        b = b // 2


    return answer

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges

'알고리즘[Python] > 프로그래머스' 카테고리의 다른 글

[ Lv 2 ] H-Index  (0) 2021.06.24
[ Lv 2 ] 조이스틱  (0) 2021.06.24
[ Lv 2 ] 전화번호 목록  (0) 2021.06.23
[ Lv 2 ] 프린터  (0) 2021.06.23
[ Lv 2 ] 행렬 테두리 회전하기  (0) 2021.06.23

+ Recent posts