정답 코드
n = int(input())
d = [0] * (n + 1)
for i in range(2, n + 1):
d[i] = d[i - 1] + 1
if i % 3 == 0:
d[i] = min(d[i], d[i // 3] + 1)
if i % 2 == 0:
d[i] = min(d[i], d[i // 2] + 1)
print(d[n])
◼ 동적 계획 알고리즘을 사용하여 풀어야 하는 문제
recursive 방법과 iterative 방법이 있는데, 속도와 성능면에서 후자가 유리하다