알고리즘 문제풀이/Dynamic programming

백준 1463 파이썬(DP)

Aytekin 2021. 10. 13. 16:34
  • 점화식

$$ a_n = min(a_{n/3}+1, a_{n/2}+1, a_{n-1}+1) $$

 

  • 코드
# 1463 - 1로 만들기

n = int(input())
dp = [0] * (n+1)

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

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

'알고리즘 문제풀이 > Dynamic programming' 카테고리의 다른 글

백준 11726 파이썬(DP)  (0) 2022.02.03
백준 9095 파이썬(DP)  (0) 2022.02.02
백준 2579 파이썬(DP)  (0) 2021.10.13
백준 1932 파이썬(DP)  (0) 2021.10.12
백준 1149 파이썬(DP)  (0) 2021.10.11