programmers- lv.2 (예상 대진표)

이예송·2023년 7월 29일

PS

목록 보기
70/97

문제링크: 예상 대진표

✍🏻 Information

content
언어python
난이도⭐️⭐️
풀이시간8분
제출횟수2
인터넷검색유무no




🍒 My Code

def solution(n,a,b):
    answer = 1 #무조건 경기 1번은 하므로
    while (a+1)//2 != (b+1)//2:
        a,b = (a+1)//2, (b+1)//2
        answer+=1
    return answer




💡 What I learned

  • 엄청난 풀이
return ((a-1)^(b-1)).bit_length()

-> a, b 를 xor 취하는 과정에서 ab 사이의 거리가 가까우면 상위비트는 차이가 나지 않고 거꾸로 ab 사이의 거리가 멀면 상위비트가 차이 나서 xor 연산 결과의 길이를 리턴해주면 라운드가 나온다고 한다...

  • 나와 비슷하지만 조금 다른 풀이
def solution(n,a,b):
    answer = 0
    while a != b:
        answer += 1
        a, b = (a+1)//2, (b+1)//2

    return answer

-> 아예 처음부터 a,b의 값을 바꿔버리는것

0개의 댓글