본문 바로가기

코딩테스트/Python

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

내 코드

def solution(n,a,b):
    answer = 1
    dic = {a:a,b:b}
    
    while True:
        if dic[a]==dic[b]: return answer-1
        if dic[a]%2==1: dic[a]+=1
        if dic[b]%2==1: dic[b]+=1
        dic[a] = dic[a]//2
        dic[b] = dic[b]//2
        answer+=1

참가번호 숫자를 딕셔너리에 넣어서 계산하였다.

 

다른사람 풀이

def solution(n,a,b):
    answer = 0
    while a != b:
        answer += 1
        a, b = (a+1)//2, (b+1)//2

    return answer

if문을 체크하지않고 무조건 +1을 하여 계산한것이다.