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

최동혁·2023년 4월 29일
0

1일 1코테 이상

목록 보기
2/10

풀이

너무 쉬운 문제여서 딱히 풀이라고 할건 없지만
루프를 돌면서 2씩 나눠서 확인을 한다
만날 숫자들은 (1, 2) (3, 4) (5, 6) 등
서로 1씩 차이 나지만 2로 나누었을때 몫이 다른 숫자들이다.
그런식으로 break를 걸어주고, 그게 아니라면 서로 2씩 계속 나눠야한다.
주의할 점은 a와 b 둘 중 누가 큰지 모르기 때문에 절대값으로 구분해야한다.

코드

def solution(n,a,b):
    answer = 0
    while True:
        if abs(b - a) == 1 and b // 2 != a // 2:
            return answer + 1
        else:
            if a % 2 == 1:
                a = a // 2 + 1
            else:
                a = a // 2
            if b % 2 == 1:
                b = b // 2 + 1
            else:
                b = b // 2
            answer += 1
    return answer
profile
항상 성장하는 개발자 최동혁입니다.

0개의 댓글