https://www.acmicpc.net/problem/2294


해결 방법 : 동적 계획법




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <algorithm>
using namespace std;
 
int main(){
    int dp[10001]={0};
    int coin[101= {0};
    int N,k;
    cin >> N >> k;
    
    for(int i = 1; i <= N; i++cin >> coin[i];    
    for(int i = 1; i <=k; i++) dp[i] = 10001;
    
    
    for(int i = 1; i <= N; i++){
        for(int j = coin[i]; j <=k; j++)
            dp[j] = min(dp[j],dp[j-coin[i]] + 1);
    }
    
    dp[k] == 10001 ?cout << -1 : cout << dp[k];
}
cs


반응형

'프로그래밍 > 문제풀이' 카테고리의 다른 글

[bfs] 백준 1012 유기농 배추  (0) 2018.11.11
백준 3015 오아시스 재결합  (0) 2018.11.10
백준 2293 (동전1)  (0) 2018.11.07
백준 2193 (이친수)  (0) 2018.11.06
백준 10844 (쉬운 계단 수)  (0) 2018.11.06

+ Recent posts