

이 문제는 동전의 종류가 N종류라고 할 때, 동전들을 이용해 동전들의 합으로 특정 입력으로 주어진 가치를 만들어야 합니다. 이때, 특정 값을 만들기 위해 필요한 동전갯수의 최소값을 만드는 문제입니다.
입력으로 N과 K가 주어지고, 그 다음으로는 동전의 가치가 오름차순으로 주어집니다.
출력으로는 k원을 만드는데 필요한 동전개수의 최솟값을 출력해야합니다.
for(int i =arr.length-1; i>=0; i--){
if( arr[i] <= K ){
count += K/arr[i];
K = K %arr[i];
}
}
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int K = Integer.parseInt(st.nextToken());
int[] arr = new int[N];
for(int i= 0; i< N ; i++){
arr[i] =Integer.parseInt(br.readLine());
}
int ans = solution(arr,K);
System.out.println(ans);
}
private static int solution(int arr[], int K){
int count = 0;
for(int i =arr.length-1; i>=0; i--){
if( arr[i] <= K ){
count += K/arr[i];
K = K %arr[i];
}
}
return count;
}
}
