본문 바로가기

백준문제풀이

[백준 문제풀이] 1463번 : 1로 만들기

https://www.acmicpc.net/problem/1463

 

1463번: 1로 만들기

첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다.

www.acmicpc.net

💡 다이나믹 프로그래밍 사용

1. 소스코드

n = int(input())

dp = [0 for i in range(n+1)]

for i in range(2, n+1):
    dp[i] = dp[i-1] + 1  

    if i%2 == 0:
        dp[i] = min(dp[i], dp[i//2]+1)
        
    if i%3 == 0 :
        dp[i] = min(dp[i], dp[i//3]+1)
        
print(dp[n])