#include <iostream> #include <algorithm> using namespace std; int main(void) { // freopen("B2294_input.txt", "r", stdin); int n, k; int dp[10010] = {0}; int coin[10010]; cin >> n >> k; for(int i = 0; i < n; i++) { cin >> coin[i]; } for(int i = 0; i <= k; i++) { dp[i] = 99999999; } dp[0] = 0; for(int i = 0; i < n; i++) { for(int j = coin[i]; j <= k; j++) { dp[j] = min(dp[j], dp[j-coin[i]] + 1); } } if(dp[k] == 99999999) { cout << "-1"; } else { cout << dp[k]; } return 0; } | cs |
'Baekjoon > DP' 카테고리의 다른 글
[백준 1480] 보석 모으기 (DP, Bitmask) (C/C++) (★★★) (0) | 2020.03.13 |
---|---|
[백준 2098] 외판원 순회 (DP, Bitmask) (C/C++) (★★★) (0) | 2020.03.12 |
[백준 2293] 동전 1 (DP) (C/C++) (★★) (0) | 2020.03.07 |
[백준 11052] 카드 구매하기 (DP) (C/C++) (0) | 2020.01.22 |
[백준 2011] 암호코드 (DP) (C/C++) (★) (0) | 2020.01.22 |