CODING TEST

백준 1890번 - 동전 0

우진하다 2023. 5. 30. 22:52

 

나의 풀이.

첫째 줄에 K원을 만드는데 필요한 동전 개수의 최솟값을 출력한다.
최소 값을 만들려면 동전을 큰 단위부터 비교해 k보다 작거나 같은 동전이 나오면
동전 갯수 += k / 동전 단위;
남은 금액(k) = k % 동전 단위;를 반복해 준다.

package day028;

import java.util.Scanner;

public class ACMICPC11047 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt(); 
        int k = sc.nextInt();
        int cnt = 0; // 동전 갯수
        int[] arr = new int[n];
        
        for (int i = 0; i < n; i++) {
            arr[i] = sc.nextInt();
        }

        for (int i = n - 1; i >= 0; i--) {
            if (arr[i] > k) { // 화폐단위가 k보다 크면 다음 반복으로 ㄱㄱ
                continue;
            }
            if (arr[i] <= k) {
                cnt += k / arr[i];
                k %= arr[i];
            }
        }
        System.out.println(cnt);
    }
}


문제 출처 : https://www.acmicpc.net/problem/11047