https://www.acmicpc.net/problem/11052
백준 11052번 카드 구매하기를 풀었다.
dp[i]의 값은 i개의 카드를 구매하는 최대 비용이다.
초기값은 dp[1] = cardpack[1] 이고, 반복문을 사용해서 dp[n]까지 구한다.
아래는 전체 코드입니다.
#include <iostream>
#include <string>
#include <vector>
#include <queue>
#include <algorithm>
#pragma warning(disable:4996)
using namespace std;
int n;
int cardpack[10001];
int dp[1001];
int main() {
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> cardpack[i];
}
dp[1] = cardpack[1];
for (int i = 2; i <= n; i++) {
for (int j = 1; j <= i; j++) {
dp[i] = max(dp[i], dp[i - j] + cardpack[j]);
}
}
cout << dp[n];
return 0;
}
'알고리즘 > PS' 카테고리의 다른 글
[C++] 백준 9370 : 미확인 도착지 (0) | 2022.05.11 |
---|---|
[C++] 백준 16234 : 인구 이동 (0) | 2022.05.10 |
[C++] 백준 10217 : KCM Travel (0) | 2022.05.07 |
[C++] 백준 10282 : 해킹 (0) | 2022.05.07 |
[C++] 백준 1219 : 오민식의 고민 (0) | 2022.05.06 |