-
[Baekjoon] 11047번 동전 0 (Java)Java/Baekjoon 2022. 10. 3. 14:01
생각보다 정말 쉬운 문제였다. 시간 초과에 자주 걸려서 이번에도 시간이 초과될까봐 걱정했는데 다행히 한 번에 통과했다.
예제 입력1
10 4200 1 5 10 50 100 500 1000 5000 10000 50000
예제 출력1
6
예제 입력2
10 4790 1 5 10 50 100 500 1000 5000 10000 50000
예제 출력2
12
import java.util.*; public class Main { public static void main(String[] args){ Scanner scan = new Scanner(System.in); String[] num = scan.nextLine().split(" "); ArrayList<Integer> arr = new ArrayList<Integer>(); for(int i = 0; i < Integer.parseInt(num[0]); i++){ int x = Integer.parseInt(scan.nextLine()); boolean boo = Integer.parseInt(num[1]) > x; // 정해진 금액을 만들어야 되는 문제이기 때문에 해당 금액보다 작거나 같은 수만 저장 if(Integer.parseInt(num[1]) >= x){ arr.add(x); } } int cnt = 0; int y = Integer.parseInt(num[1]); // 원하는 금액 // 오름차순으로 저장되어 있기 때문에 해당 금액(y)에 가장 가까운 동전으로 먼저 만듦 for(int i = arr.size()-1; i >= 0; i--){ // 해당 금액보다 작거나 같은 수로만 만듦 if(y >= arr.get(i)){ int n = y / arr.get(i); y = y % (arr.get(i)*n); // 해당 금액에 가장 가깝게 만들고 나머지로 다시 금액을 맞춤 cnt += n; if(y == 0){break;} } } System.out.println(cnt); } }
728x90'Java > Baekjoon' 카테고리의 다른 글
[Baekjoon] 17219번 비밀번호 찾기 (Java) (0) 2022.10.03 [Baekjoon] 11399번 ATM (Java) (0) 2022.10.03 [Baekjoon] 1764번 듣보잡 (Java) (0) 2022.10.02 [Baekjoon] 1620번 나는야 포켓몬 마스터 이다솜 (Java) (0) 2022.10.02 [Baekjoon] 11723번 집합 (Java) (0) 2022.10.02