앞서 파이썬으로 풀어보았던 DP문제를 c++로 다시 풀어보았다. 같은 방식으로 풀이했기 때문에 풀이는 생략한다.
[ BOJ / Python ] 2293번 동전 1
#include <iostream>
#include <cstring>
#define MAX 10001
#define CMAX 101
using namespace std;
int n, k;
int coin[CMAX];
int answer[MAX];
void Input(){
cin>>n>>k;
for(int i=0; i<n; i++){
cin>>coin[i];
}
memset(answer, 0, MAX);
answer[0]=1;
}
void Solution(){
for(int i=0; i<n; i++){
for(int j=coin[i]; j<=k; j++){
if(j-coin[i]>=0)
answer[j]+=answer[j-coin[i]];
}
}
cout<<answer[k]<<endl;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
Input();
Solution();
return 0;
}