https://www.acmicpc.net/problem/11047
1. 풀이
아주 쉬운 그리디 문제입니다.
문제에 오름차순으로 입력이 들어온다고 했으므로, 큰 돈부터 차례대로 나누어 가면서 나누어지면 더하고, 나머지 값들을 대상으로 계속해서 나누어가면 됩니다.
2. 코드
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int k = sc.nextInt();
int[] money = new int[n];
for(int i = 0; i < n; i++) {
money[i] = sc.nextInt();
}
int result = 0;
for(int i = n-1; i >= 0; i--) {
if(k / money[i] != 0) {
result += (k / money[i]);
k %= money[i];
}
}
System.out.println(result);
sc.close();
return;
}
}
'알고리즘 > 백준' 카테고리의 다른 글
[백준 5585] 거스름돈 - 자바 (0) | 2020.04.03 |
---|---|
[백준 1931] 회의실배정 - 자바 (0) | 2020.04.03 |
[백준 11399] ATM - 자바 (0) | 2020.04.03 |
[백준 12865] 평범한 배낭 - 자바 (0) | 2020.04.02 |
[백준 9251] LCS - 자바 (0) | 2020.04.02 |
댓글