알고리즘 공부
백준 동전2(복습)
컴퓨터과학
2023. 11. 15. 00:04
https://www.acmicpc.net/problem/2294
2294번: 동전 2
첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. 가치가 같은 동전이 여러 번 주어
www.acmicpc.net
자바로 풀었고 복습용이었습니다. 오답노트 한번 해야할것같은데 오늘은 좀 늦어서 내일 하도록 하겠습니다.
import java.util.*;
import java.lang.*;
import java.lang.reflect.Array;
import java.io.*;
public class Main {
public static void main(String[] args) throws Exception {
Scanner scan=new Scanner(System.in);
int n=scan.nextInt();
int k=scan.nextInt();
int coin[]=new int[n];
for(int i=0;i<n;i++) {
int tmp=scan.nextInt();
coin[i]=tmp;
}
Arrays.sort(coin);
int dp[]=new int[k+1];
for(int i=0;i<k+1;i++) {
dp[i]=100001;
}
dp[0]=0;
for(int i=0;i<n;i++) {
for(int j=coin[i];j<=k;j++) {
dp[j]=Math.min(dp[j], dp[j-coin[i]]+1);
}
}
//System.out.println();
if(dp[k] == 100001) {
System.out.println(-1);
}else {
System.out.println(dp[k]);
}
}
}