본문 바로가기
알고리즘/백준 BOJ

[ BOJ/C# ] 11047 동전 0

by 왹져박사 2023. 9. 15.
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

언어를 배우는 과정에서 초반에 자주 보게 되는 유형의 문제 같다. 

동전을 가장 큰 단위부터 나머지가 0이 될때까지 나눠주면 된다. 

using System;
using System.Text;

namespace B11047
{
    class Program
    {
        static void Main()
        {
            StreamReader sr = new StreamReader(Console.OpenStandardInput());
            StreamWriter sw = new StreamWriter(Console.OpenStandardOutput());

            int[] nk = Array.ConvertAll(sr.ReadLine().Split(' '), int.Parse);
            int[] coins = new int[nk[0]];
            int count = 0;  //동전 개수

            for(int i = 0; i < nk[0]; i++) coins[i] = int.Parse(sr.ReadLine());
            //가장 뒤의 단위부터 나누기
            for (int i = nk[0] - 1; i >= 0; i--)
            {
                count += nk[1] / coins[i];
                nk[1] %= coins[i];  //나머지
                if (nk[1] == 0) break;
            }
            sw.Write(count);
            sr.Close();
            sw.Flush();
            sw.Close();
        }
    }
}

728x90