티스토리 뷰

728x90

문제

www.acmicpc.net/problem/1463

 

1463번: 1로 만들기

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

www.acmicpc.net

 

소스코드

x = int(input())

dp = [0 for _ in range(x+1)]

for i in range(2, x+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[x])
반응형