백준. 1463번. 1로 만들기 파이썬 풀이
문제링크 https://www.acmicpc.net/problem/1463
1부터 역으로 올라가면서 dp 테이블을 갱신하여 풀었다.
n = int(input())
INF = int(1e9)
dp = [0] * (n+1)
for i in range(2, n+1):
dp[i] = dp[i-1] + 1
if i % 2 == 0 and dp[i] > dp[i//2]+1:
dp[i] = dp[i//2] + 1
if i % 3 == 0 and dp[i] > dp[i//3]+1:
dp[i] = dp[i//3] + 1
print(dp[n])