본문 바로가기

Algorithm

C++(씨쁠쁠)(cplusplus)-백준(baekjoon)(BaekJoon)코딩 9084번:동전 답

반응형
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <cstring>
using namespace std;
//d[i] = i번째 동전으로 m원을 만들 수 있는 경우의 수
//d[i] = d[coin[j]]++
//d[i] += d[i-a[j]]
 
int coin[21],coinN, T, N, M,d[10001];
int main() {
    cin >> T;
    while (T--) {
        cin >> N;
        memset(coin, 0sizeof(coin));//동전 초기화
        memset(d, 0sizeof(d));
        for (int j = 1; j <= N; j++)
            cin >> coin[j];//동전의 가치 입력
        cin >> M;//만들어야 하는 금액
        for (int i = 1; i <= N; i++) {
            d[coin[i]]++;
            for (int j = coin[i]+1; j <= M; j++) {
                d[j] = d[j] + d[j - coin[i]];
 
            }
 
        }
        cout << d[M] << '\n';
    }
    
}
cs