[BOJ-Code] 11047 - 동전 0

Posted by DHniyeo Blog on March 10, 2024

문제 링크

💡 그리디 알고리즘

Memory 1112KB Time 0ms Code Length 343B

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<stdio.h>
#include<algorithm>

using namespace std;
int main()
{
	int n, k;
	int coin_val[10]; // 동전 단위
	scanf("%d %d", &n, &k);
	for (int i = 0; i < n; i++) {
		scanf("%d", &coin_val[i]);
		getchar();
	}
	int cnt = 0;
	for (int i = n - 1; i >= 0; i--) {
		cnt += k / coin_val[i];
		k %= coin_val[i];
	}
	printf("%d", cnt);

}

이 코드는 주어진 금액 k를 동전 단위로 나누어 최소한의 동전 개수를 구하는 프로그램이다. 먼저 n과 k를 입력받고, n개의 동전 단위를 입력받는다. 그 후, 큰 동전부터 시작하여 k를 해당 동전 단위로 나누고 남은 나머지를 다음 작은 동전 단위로 나누는 과정을 반복한다. 이를 통해 필요한 동전의 최소 개수를 계산하고 출력한다.