반응형
문제 링크 : https://www.acmicpc.net/problem/2293
문제 내용
n가지 종류의 동전이 있다. 각각의 동전이 나타내는 가치는 다르다. 이 동전들을 적당히 사용해서, 그 가치의 합이 k원이 되도록 하고 싶다. 그 경우의 수를 구하시오. (각각의 동전은 몇 개라도 사용할 수 있다.)
소스코드
#include <iostream>
using namespace std;
int main() {
int n, k;
int *value;
int **result;
cin >> n >> k;
value = new int[n];
result = new int*[2];
for(int i=0; i<n; i++){
cin >> value[i];
}
for(int i=0; i<2; i++){
result[i] = new int[k+1];
}
result[0][0] = 1;
for(int i=1; i<=n; i++){
for(int j=0; j<=k; j++){
result[i&1][j] = result[(i+1)&1][j] + (j>=value[i-1] ? result[i&1][j-value[i-1]] : 0);
}
}
cout << result[n&1][k];
return 0;
}반응형
'컴퓨터 > Online Judge' 카테고리의 다른 글
| [acmicpc.net] 11726 2×n 타일링 (0) | 2016.09.21 |
|---|---|
| [acmicpc.net] 1932 숫자삼각형 (0) | 2016.09.18 |
| [acmicpc.net] 2167 2차원 배열의 합 (0) | 2016.09.11 |
| [acmicpc.net] 2579 계단 오르기 (0) | 2016.09.09 |
| [acmicpc.net] 2193 이친수 (0) | 2016.09.08 |