Programmers - 점프와 순간 이동

SJ0000·2022년 5월 12일

문제 링크

처음에는 0부터 시작해서 N까지 가는 모든 경우의 수를 계산하는 방법을 사용하였다.
(x에 있을때 x+1 , x*2 를 Queue에 넣어서 처리)

그렇게 풀었을 때 정확성 테스트는 통과하는데 효율성 테스트를 통과하지 못했다.
생각을 바꾸어서 n에서 출발해서 /2 하면서 순간이동을 하다가 홀수가 되었을 때
-1 점프하여 0으로 도착하는 방법을 사용해서 풀었다.

def solution(n):

    # n에서부터 출발해서 0으로 도착
    answer = 0

    while n != 0:
        if n % 2 == 0:
            n /= 2
        else:
            n -= 1
            answer += 1

    return answer
profile
잘하고싶은사람

0개의 댓글