본문 바로가기

Coding Test/Programmers

[프로그래머스/파이썬] 예상 대진표

728x90

 

 

나의 풀이

def solution(n,a,b):
    a, b = a - 1, b - 1
    answer = 1
    while n > 0:
        a, b = a // 2, b // 2
        if a == b:
            break
        answer += 1

    return answer

 - while의 조건을 a != b로 줄 수 있었을 듯

 

 

 

bitwise XOR를 사용한 풀이

def solution(n,a,b):
    return ((a-1)^(b-1)).bit_length()

 

 

 

다른 풀이

def solution(n,a,b):
    i = 0
    while (a-1)//(2**i) != (b-1)//(2**i):
        i += 1
    return i

 

 

반응형