반응형
코드
n = int(input())
p = list(map(int,input().split()))
dp = [0]*(n+1)
dp[1] = p[0]
dp[2] = min(dp[1]*2,p[1])
for i in range(3,n+1):
dp[i] = p[i-1]
for j in range(1,i//2+1):
dp[i] = min(dp[i],dp[j]+dp[i-j])
print(dp[-1])
반응형
'알고리즘 > dynamic programming' 카테고리의 다른 글
[프로그래머스][Python] 정수 삼각형 (0) | 2023.02.06 |
---|---|
[백준][Python] 15988번 1, 2, 3 더하기 3 (0) | 2022.12.29 |
[백준][Python] 16395번 파스칼의 삼각형 (0) | 2022.12.26 |
[백준][Python] 11060번 점프 점프 (0) | 2022.12.23 |
[백준][Python] 13699번 점화식 (0) | 2022.12.19 |
댓글