https://www.acmicpc.net/problem/11052
11052번: 카드 구매하기
첫째 줄에 민규가 구매하려고 하는 카드의 개수 N이 주어진다. (1 ≤ N ≤ 1,000) 둘째 줄에는 Pi가 P1부터 PN까지 순서대로 주어진다. (1 ≤ Pi ≤ 10,000)
www.acmicpc.net
💡 최대비용을 다이나믹 프로그래밍으로 구하려면 카드 i개를 구매하는 최대값은 dp[i-j]+P[j]의 최댓값이므로
dp[i]=dp[i-j]+P[j]로 구할 수 있다.
1. 소스코드
N=int(input())
P=[0]+list(map(int,input().split()))
dp=[0 for i in range(N+1)]
for i in range(1,N+1):
for j in range(1,i+1):
dp[i]=max(dp[i],dp[i-j]+P[j])
print(dp[i])
'백준문제풀이' 카테고리의 다른 글
[백준 문제풀이] 15990번 : 1,2,3 더하기 5 (0) | 2021.07.20 |
---|---|
[백준 문제풀이] 16194번 : 카드 구매하기 2 (0) | 2021.07.20 |
[백준 문제풀이] 9095번 : 1,2,3 더하기 (0) | 2021.07.20 |
[백준 문제풀이] 11726번 : 2×n 타일링 (0) | 2021.07.20 |
[백준 문제풀이] 1463번 : 1로 만들기 (0) | 2021.07.20 |