본문 바로가기
알고리즘/백준온라인저지 (Python)

[백준온라인저지] 1463 - 1로 만들기

by 미래문 2021. 8. 24.
반응형


 

 

 

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

 

1463번: 1로 만들기

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

www.acmicpc.net

import sys

n = int(sys.stdin.readline())

dp = [0 for _ in range(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])
반응형

댓글