본문 바로가기
Algorithm/백준풀이

[알고리즘 문제풀이] 백준 11047 동전0 /JAVA코드

by 계범 2022. 1. 19.

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. k원보다 작거나 같으면 동전으로 나누어 몇개까지 사용가능한지 확인
 * 
 * 3. 몫이 사용개수 이므로 몫만큼 정답 증가
 * 
 * 4. 나머지를 기준으로 하위 동전 체크
 * 
 * 5. k == 0으로 전환 시 정답 출력
 * 
 */

import java.util.*;
import java.io.*;

public class BJ11047_동전0 {
    
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;
        
        st = new StringTokenizer(br.readLine());

        int n = Integer.parseInt(st.nextToken());
        int k = Integer.parseInt(st.nextToken());

        int[] arr = new int[n];
        for(int i = 0; i < n; i++){
            arr[i] = Integer.parseInt(br.readLine());
        }

        int cnt = 0;

        for(int i = arr.length-1; i >= 0; i--){
            if(arr[i] <= k){
                cnt += k/arr[i];
                k %= arr[i];
            }
            if(k == 0){
                System.out.println(cnt);
                break;
            }
        }

    }
}

댓글