본문 바로가기
알고리즘/그리디

[java 백준] 실버2/11047번 동전 0

by Meaning_ 2021. 8. 10.
728x90
반응형

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import java.util.Scanner;
 
public class Main {
 
    public static int n;
 
    public static int[] arr;
    public static int[] tot;
 
    public static void main(String[] args) {
 
        Scanner sc = new Scanner(System.in);
        int count = 0;
        n = sc.nextInt();
        int price = sc.nextInt();
        arr = new int[n + 1];
        tot = new int[n + 1];
        for (int i = 1; i <= n; i++) {
            arr[i] = sc.nextInt();
        }
 
        while (price >= 1) {
            int len = 0;
            for (int i = 1; i <= n; i++) {
                if (price - arr[i] >= 0) {
 
                    tot[i] = price - arr[i];
 
                    len++;
 
                }
 
            }
 
            int min = tot[1];
 
            for (int i = 1; i <= len; i++) {
                if (min >= tot[i]) {
                    min = tot[i];
                }
            }
            price = min;
 
            count++;
        }
 
        System.out.println(count);
 
    }
 
}
cs

 

동전 문제를 다이나믹 프로그래밍에서 봤어서 동전 관련문제를 찾아봤더니 이 문제가 나왔다.

근데 웬걸 그리디였다..! 

풀이는 완전탐색으로 했다! 아직 그리디 강의를 듣지 않아서 그리디 강의를 들으면 다시 수정하러 오겠다-!

728x90
반응형

댓글