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

이번 문제의 조건 중에 가장 중요한 부분은 아래 내용이다.

아래 조건이 있기 때문에 그리디 알고리즘이 적용가능하다.

 

i ≥ 2인 경우에 Ai는 Ai-1의 배수

 

#include <bits/stdc++.h>
using namespace std;

int main(void)
{
    int n, k;
    int in[10];

    cin >> n >> k;
    for (int i = 0; i < n; i++)
    {
        cin >> in[i];
    }

    int cnt = 0;
    for (int i = n - 1; i >= 0; i--)
    {
        while (k / in[i])
        {
            cnt += k / in[i];
            k = k % in[i];
        }
    }

    printf("%d", cnt);

    return 0;
}

'정보올림피아드-KOI > BOJ' 카테고리의 다른 글

백준 - 2×n 타일링 2 : 11727번  (0) 2020.01.11
백준 - 최소,최대 : 10818번  (0) 2020.01.02
백준-N-Queen : 3344번  (0) 2019.12.26
백준 - 타일링 : 1793번  (0) 2019.12.23
백준 - DFS와 BFS : 1260번  (0) 2019.12.22

+ Recent posts