HS_development_log

백준 11047번 - 동전0 / Java 본문

Algorithm-백준/그리디

백준 11047번 - 동전0 / Java

DevHyeonseong 2020. 2. 1. 16:00
반응형

문제

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. 돈을 단위로 가능한만큼 나눠서 answer에 더해주고 돈을 그만큼 빼준다

  2. 돈이 0보다 작아지면 break

소스코드

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
/*
 * BOJ11047
 * 2020.02.01
 * Hyeonseong
 */
import java.util.*;    
public class Main {
    public static void main(String[] args) {
        Solution s = new Solution();
    }
}
class Solution{
    int n,k;
    int money[];
    int answer = 0;
    public Solution() {
        Scanner scan = new Scanner(System.in);
        n = scan.nextInt();
        k = scan.nextInt();
        money = new int[n];
        for(int i=0;i<n;i++) {
            money[i] = scan.nextInt();
        }
        for(int i=n-1;i>=0;i--) {
            answer += k/money[i];
            k -= money[i]*(k/money[i]);
            if(k<0break;
        }
        System.out.println(answer);
    }
}
cs

 

 

반응형

'Algorithm-백준 > 그리디' 카테고리의 다른 글

백준 1202번 - 보석 도둑 / Java  (0) 2020.02.01
백준 2138번 - 전구와 스위치 / Java  (0) 2020.02.01