본문 바로가기

백준

백준 - 11047 동전 0

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

백준 11047 동전

import java.util.ArrayList;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) throws Exception {
        Scanner scan = new Scanner(System.in); 
        int N = scan.nextInt(); //N -> 동전의 종류 : N
        int K = scan.nextInt(); //K -> 합 : K
        int c; //동전의 가치를 임시로 넣어주기 위한 변수
        ArrayList<Integer> list = new ArrayList<Integer>();
        for(int i=0;i<N;i++){ //동전의 종류수인 N번만큼 돌려서
            c = scan.nextInt(); //동전의 가치를 받아서
                list.add(c); //리스트에 추가해준다
        }
        int count = 0; //카운트는 0으로 초기값 설정하고
        int i = N-1; //리스트는 0부터 세니깐 N번에서 하나 빼줬다
        while (K!=0){ //K값이 0이 아닐 동안
            if(list.get(i)<=K){ //리스트에 들어있는 값중 가장큰 값과 비교해서 만약 K값이 더 크다면               
                K = K-list.get(i); //K에서 큰값만큼 빼준값을 K로 하고
                count++;           //카운트에 1을 더해준다
            }
            else{
                i = i-1; //만약 리스트에 들어있는 가장큰값보다 K가 작으면 리스트에서 두번째로 큰값과 비교하기 위해 i를 하나 빼준다
            }
        }
        System.out.println(count); //카운트를 출력한다
    }
}

 

오늘의 한마디

뭔가 더 좋은 방법이 있을것같다

반응형

'백준' 카테고리의 다른 글

백준 - 큐 10845  (0) 2023.03.02
백준 - AC 5430  (0) 2023.03.01
백준 - 제로 10773  (0) 2023.02.28
백준 - 괄호 9012  (0) 2023.02.28
백준 - 2292 벌집  (0) 2022.12.01