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

개발자 핑구·2022년 3월 14일
0


나의 코드

import sys
input = sys.stdin.readline

n=int(input())
p=list(map(int,input().split()))

dp=[0]+p

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

수행시간: 272ms


풀이

다이나믹 프로그래밍을 통해서 문제를 풀었다.
dp[i]는 i개의 카드를 구매할 때 금액의 최소값이다.
따라서 dp[i]=min(p[i],dp[1]+dp[i-1],dp[2]+dp[i-2]....) 이다.

0개의 댓글

관련 채용 정보