https://www.acmicpc.net/problem/1463
from collections import deque
n=int(input())
dq = deque()
ans=0
visits = [0]*((10**6)+1)
dq.append([n, 0])
while dq:
val, cnt = dq.popleft()
if val==1:
ans=cnt
break
if visits[val]==0:
visits[val]=1
if val%3==0:
dq.append([val//3, cnt+1])
if val%2==0:
dq.append([val//2, cnt+1])
dq.append([val-1, cnt+1])
print(ans)
1년전만 해도 헉헉 거리면서 못 풀었던 문제인데 지금은 5분만에 푼 것을 보고 열심히 하면 안되는건 없다고 느낌