본문 바로가기
Algorithm & SQL/BAEKJOON

백준 JAVA 11047 동전0

by YoonJong 2022. 8. 13.
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

그리디 알고리즘의 가장 기초문제

 

9일전에 풀었을때랑 지금 풀었을때랑 조금 풀이방법이 달랐다.

이전에는 for 문을 사용해 k 를 나누어서 풀었다면, 오늘은 while 문을 사용해 반복형식으로 풀었다.

 

저번 풀이가 더 좋은 풀이였다.

package BAEKJOON.Silver.Ⅳ;

import java.util.Scanner;

public class NO11047 {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int k = sc.nextInt();
        int [] coins = new int[n];

        for (int i = 0; i < n; i++) {
            coins[i] = sc.nextInt();
        }

        int count = 0;
        // 오름차순으로 정렬되있기 때문에 뒤에서부터 확인한다.
        for (int i = n-1; i >= 0; i--) {

            if( coins[i] <= k) {
                // k 를 coins[i] 로 나눈 몫
                count += k / coins[i];
                // k 는 coins[i] 로 나눈 나머지
                k = k % coins[i];
            }
        }

        System.out.println(count);


    }
}

 

별로

package BAEKJOON.Silver.Ⅳ;

import java.util.Scanner;

public class NO11047_2 {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        int n = sc.nextInt(); //동전개수
        int k = sc.nextInt(); //원
        int count = 0;

        int[] arr = new int[n];
        for (int i = 0; i < n; i++) {
            arr[i] = sc.nextInt();
        }

        while(true) {
            if( k - arr[n-1] < 0 ) {
                n --;
            } else {
                k = k - arr[n-1];
                count++;
            }

            if( k == 0 ) {
                break;
            }
        }

        System.out.println(count);


    }
}
728x90

'Algorithm & SQL > BAEKJOON' 카테고리의 다른 글

백준 JAVA 2217 로프  (0) 2022.08.13
백준 JAVA 11399 ATM  (0) 2022.08.13
백준 JAVA 1977 프린터 큐  (0) 2022.08.12
백준 JAVA 1874 스택 수열  (0) 2022.08.12
백준 JAVA 4949 균형잡힌 세상  (0) 2022.08.11

댓글