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

eenzeenee·2023년 4월 17일

CodingtestPractice

목록 보기
3/13

문제 링크

다양한 경우 고려하지 못함

  • 반드시 큰 수가 짝수여야 해당 라운드에서 만나게 됨
    ex) N = 8, A = 4, B = 5, answer = 3
def solution(n,a,b):
    answer = 1

    if a < b:
        a, b = b, a
    
    if a - b == 1 and a % 2 == 0:
        return 1
    
    while True: 
        if a - b == 1 and a % 2 == 0: # 반드시 큰 쪽이 짝수여야 만나게 됨
            break
        if a % 2:
            a = (a+1)//2
        else:
            a = a // 2
        if b % 2:
            b = (b+1)//2
        else:
            b = b // 2
        answer += 1
        

    return answer

주의 사항

  • while문을 돌때, a%2==0으로 탈출 조건을 만들지 않을 경우 -> 위의 ex)에서 answer = 1로 나옴
  • 반드시 큰 수가 짝수이고 그 두 수의 차가 1일 경우에만 해당 라운드에서 만나게 됨
profile
Steadily

0개의 댓글