본문 바로가기
알고리즘/dynamic programming

[백준][Python] 16194번 카드 구매하기2

by 임짠짠 2022. 12. 27.
반응형
 

16194번: 카드 구매하기 2

첫째 줄에 민규가 구매하려고 하는 카드의 개수 N이 주어진다. (1 ≤ N ≤ 1,000) 둘째 줄에는 Pi가 P1부터 PN까지 순서대로 주어진다. (1 ≤ Pi ≤ 10,000)

www.acmicpc.net

 

코드

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])
반응형

댓글