본문 바로가기
백준/C++

백준 11047번 : 동전 0 [C++]

by 대니스 2022. 8. 26.

주소 : 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

소스 코드 :

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;

int main()
{
	int money, num;
	int kind[10];
	int coin = 0;

	cin >> num >> money;
	for (int i = 0;i < num;i++)
		cin >> kind[i];

	for (int i = num - 1;i >= 0;i--)
	{
		if (money / kind[i] > 0)
		{
			coin += money / kind[i];
			money -= kind[i] * (money / kind[i]);
		}
	}

	cout << coin;
}

마무리 : 동전 개수의 최솟값을 구하기 위해 큰 값부터 비교를 한 뒤 금액을 깎으면서 동전의 개수를 구한다. 실버 문제치고는 어렵지 않은 문제였다.