티스토리 뷰

Algorithm/BOJ

3067 Coins

henry1214 2018. 5. 19. 13:18

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



d[i] = 주어진 동전으로 i원을 만드는 경우의 수


오름차순으로 주어진 동전의 경우의 수를 차례대로 추가해가면 중복없이 테이블을 채울 수 있다.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <cstdio>
#include <cstring>
 
int t,n,m,a[20],d[10001];
 
int main()
{
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d",&n);
        for(int i=0;i<n;i++)
            scanf("%d",&a[i]);
        scanf("%d",&m);
        d[0]=1;
        for(int i=0;i<n;i++)
            for(int j=a[i];j<=m;j++)
                d[j]+=d[j-a[i]];
        printf("%d\n",d[m]);
        memset(d,0,sizeof(d));
    }
    return 0;
}
cs


'Algorithm > BOJ' 카테고리의 다른 글

15654 N과 M (5)  (0) 2018.06.06
15649 N과 M (1)  (0) 2018.06.06
15685 드래곤 커브  (3) 2018.04.16
15686 치킨 배달  (0) 2018.04.16
14891 톱니바퀴  (0) 2018.04.09
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday