알고리즘/PS

[C++] 백준 11052 : 카드 구매하기

BigmacGood 2022. 5. 9. 23:43

https://www.acmicpc.net/problem/11052

 

11052번: 카드 구매하기

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

www.acmicpc.net

백준 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