페이지

2294번: 동전 2

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


#include<stdio.h>
int dp[10001], n, k;
int main() {
    scanf("%d %d", &n, &k);
    for (int i = 1; i <= k; i++) dp[i] = 0x3fffffff;
    for (int i = 0; i < n; i++) {
        int c;
        scanf("%d", &c);
        for (int j = c; j <= k; j++)
            if (dp[j] > dp[j - c] + 1) dp[j] = dp[j - c] + 1;
    }
    printf("%d", dp[k] == 0x3fffffff ? -1 : dp[k]);
    return 0;
}

댓글 없음 :

댓글 쓰기