https://www.acmicpc.net/problem/2293
더보기
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int n, k;
cin >> n >> k;
vector<int> coin;
vector<unsigned long> dp;
coin.resize(n + 1);
dp.resize(k + 1);
for (int i = 1; i <= n; i++) {
cin >> coin[i];
}
dp[0] = 1;
for (int i = 1; i <= n; i++) {
for (int j = coin[i]; j <= k; j++) {
//int val = (dp[i - 1][j] > dp[i][j - coin[i]] ? dp[i - 1][j] : dp[i][j - coin[i]]);
dp[j] = dp[j] + dp[j - coin[i]];
}
}
/*for (int i = 1; i <= k; i++) {
cout << dp[i] << " ";
}*/
cout << dp[k] << endl;
return 0;
}
'Algorithm > Algorithm 문제 풀이' 카테고리의 다른 글
[BAE/<JOON> 문제풀이] 1699. 제곱수의 합 (DP.020) (0) | 2020.04.30 |
---|---|
[BAE/<JOON> 문제풀이] 11057. 오르막수 (DP.019) (0) | 2020.04.29 |
[BAE/<JOON> 문제풀이] 1010. 다리놓기 (DP.017) (0) | 2020.04.28 |
[BAE/<JOON> 문제풀이] 2163. 초콜릿 자르기 (DP.015) (0) | 2020.04.27 |
[BAE/<JOON> 문제풀이] 14501. 퇴사 (DP.014) (0) | 2020.04.27 |