알고리즘/백준
[백준/c++] 11052번: 카드 구매하기
녕이
2022. 2. 28. 20:09
728x90
https://www.acmicpc.net/problem/11052
11052번: 카드 구매하기
첫째 줄에 민규가 구매하려고 하는 카드의 개수 N이 주어진다. (1 ≤ N ≤ 1,000) 둘째 줄에는 Pi가 P1부터 PN까지 순서대로 주어진다. (1 ≤ Pi ≤ 10,000)
www.acmicpc.net
n개 이전의 값들의 금액 최댓값을 구하다 보면 메모이제이션으로 n개의 카드를 구매하는 금액의 최댓값을 구할 수 있다.
#include <iostream>
#include <algorithm>
#define num 1002
using namespace std;
int n, p[num], dp[num];
void input(){
cin >> n;
for(int i=1; i<=n; i++) cin >> p[i];
}
void solution(){
dp[0] = p[0] = 0;
for(int i=1; i<=n; i++){
for(int j=1; j<=i; j++){
dp[i] = max(dp[i], dp[i-j] + p[j]);
}
}
cout << dp[n] << '\n';
}
int main(){
ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
input();
solution();
return 0;
}
💡공부 및 기록용 블로그이므로 오류가 있을 수 있습니다.💡
만약 문제에 오류나 오타가 있다면 댓글로 알려주세요➿
언제나 환영합니다. 감사합니다. 화이팅!
728x90