본문 바로가기
백준

백준 2994 동전 2

by 조재범 2021. 6. 5.

algorithm  : dp

 

해설

dp[i] = 동전의 가치의 합이 i일때 최소동전의 갯수

 

#include<bits/stdc++.h>
#define LM 1000+10
#define INF 199999999
using LL = long long;
using namespace std;

int N,K;
int coin[LM];
int dp[100000 + 10];

void input(){
    scanf("%d %d",&N,&K);
    for(int i = 1 ; i <= N ; i++)
        scanf("%d",&coin[i]);
}

void DP(){
    for(int i = 1 ; i <= K ; i++) dp[i] = INF;

    for(int i = 1 ; i <= K ; i++){
        for(int j = 1 ; j <= N ; j++){
            if(coin[j] <= i)
                dp[i] = min(dp[i],dp[i - coin[j]] + 1);
        }
    }
    if(dp[K] == INF) printf("-1");
    else printf("%d",dp[K]);
}

int main(){
    //freopen("input.txt","r",stdin);
    input();
    DP();
    return 0;
}

'백준' 카테고리의 다른 글

백준 21924 도시건설  (0) 2021.06.06
백준 2225합분해  (0) 2021.06.05
백준 11048 이동하기  (0) 2021.06.05
백준 11722 가장 긴 감소하는 부분 수열  (0) 2021.06.05
백준 12865 평범한 배낭  (0) 2021.06.04