https://www.acmicpc.net/problem/3067
더보기
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int tc;
cin >> tc;
while (tc--) {
int n;
cin >> n;
vector<int> coins;
vector<vector<int>> dp;
coins.resize(n + 1);
for (int i = 1; i <= n; i++) {
cin >> coins[i];
}
int m;
cin >> m;
dp.resize(n + 1);
for (int i = 0; i <= n; i++) {
dp[i].resize(m + 1);
dp[i][0] = 1;
}
for (int i = 1; i <= n; i++) {
for (int j = 0; j < coins[i]; j++) {
dp[i][j] = dp[i - 1][j];
}
for (int j = coins[i]; j <= m; j++) {
dp[i][j] = dp[i - 1][j] + dp[i][j - coins[i]];
}
}
cout << dp[n][m] << "\n";
}
return 0;
}
'Algorithm > Algorithm 문제 풀이' 카테고리의 다른 글
[BAE/<JOON> 문제풀이] 2662. 기업투자(푸는중) (0) | 2020.06.13 |
---|---|
[BAE/<JOON> 문제풀이] 1256. 사전 (0) | 2020.06.12 |
[BAE/<JOON> 문제풀이] 2410. 2의 멱수의 합 (0) | 2020.06.10 |
[BAE/<JOON> 문제풀이] 7579. 앱 (0) | 2020.06.09 |
[BAE/<JOON> 문제풀이] 10835. 카드게임 (0) | 2020.06.08 |