https://www.acmicpc.net/problem/9084
#include <iostream>using namespace std;int T;int n;int process() {int coin[21] = {0, };int dp[10001] = {0, };int money = 0;int ret = 0;scanf("%d", &n); // 동전의 갯수for (int i = 0; i < n; ++i) {scanf("%d", &coin[i]);}scanf("%d", &money); // 만들어야 할 금액dp[0] = 1;for (int i = n - 1; i >= 0; --i) {int curCoin = coin[i];for (int j = curCoin ; j <= money ; j++) {dp[j] = dp[j] + dp[j - curCoin];}}return dp[money];}int main(){scanf("%d", &T);for (int i = 0 ; i < T; ++i) {printf("%d\n", process());}return 0;}
'알고리즘 풀이' 카테고리의 다른 글
백준 6359번 만취한 상범 (0) | 2018.02.07 |
---|---|
백준 2302번 극장 좌석 (0) | 2018.02.02 |
백준 10942번 팰린드롬? (0) | 2018.01.22 |
백준 6603번 로또 (0) | 2018.01.15 |
백준 1987번 알파벳 (0) | 2018.01.10 |