728x90
반응형
### 분류
다이나믹 프로그래밍(dp), 배낭 문제(knapsack)
#include <iostream>
#include <vector>
using namespace std;
int main() {
int test;
cin >> test;
//indexdml 금액을 달성하는 방법의 개수
vector<int> total_cnt(10000, 0);
while(test--){
//코인 종류 개수 입력
int coin_cnt;
cin >> coin_cnt;
//코인 종류 입력
vector<int> coin_list;
for (int i = 0; i < coin_cnt;i++) {
int input;
cin >> input;
coin_list.push_back(input);
}
//방법을 찾아야하는 목표 금액
int target_money;
cin >> target_money;
//코인 종류만큼 반복
for (int i = 0;i < coin_cnt;i++) {
//처음 자기자신의 금액 업데이트
total_cnt[coin_list[i]]++;
for (int j = coin_list[i] + 1;j <= target_money;j++) {
total_cnt[j] += total_cnt[j - coin_list[i]];
}
}
cout << total_cnt[target_money]<<'\n';
for (int i = 0;i < 10000;i++) {
total_cnt[i] = 0;
}
}
}728x90
반응형
'백준 > GOLD' 카테고리의 다른 글
| [백준 1715번][C++] 카드 정렬하기 (0) | 2022.09.08 |
|---|---|
| [백준 7662번][C++] 이중 우선순위 큐 (0) | 2022.08.29 |
| [백준 10026번][C++] 적록색약 (0) | 2022.08.08 |
| [백준 7565번][C++] 토마토 (0) | 2022.07.25 |