알고리즘/Greedy
BOJ - 11047 ) 동전 0
개발자가될수있을까?
2022. 3. 5. 10:54


https://www.acmicpc.net/problem/11047
11047번: 동전 0
첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수)
www.acmicpc.net
동전이 무수히 많고, A(i) 번째는 A(i-1) 번째의 배수이므로
그리디가 성립한다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
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 answer =0;
int Num[] = new int[N];
for(int i=0;i<N;i++) {
Num[i] = Integer.parseInt(br.readLine());
}
while(K!=0) {
if(K-Num[N-1] >= 0) {
K-=Num[N-1];
answer++;
} else {
N--;
}
}
System.out.println(answer);
}
}
