처음에는 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