View
반응형
알고리즘 분류: 그리디 알고리즘
문제 링크: 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
【 풀이 】
그리디 알고리즘을 활용하는 그리디 기초 문제이다.
동전 거스름돈은 항상 가장 큰 금액의 동전부터 거슬러 주는 것이 최적해이기 때문에
n개의 동전들을 배열에 저장해 주고 배열의 맨 뒤에서부터 계산해 주면 된다.
【 코드 】
#include<iostream>
using namespace std;
int a[1000001];
int main(void)
{
int cnt = 0;
int n, k;
cin >> n >> k;
for (int i = 0; i < n; i++)
cin >> a[i];
for (int i = n - 1; i >= 0; i--)
{
if (k % a[i] != k)
{
cnt += k / a[i];
k %= a[i];
}
}
cout << cnt;
return 0;
}
728x90
반응형
'Problem Solving > Baekjoon' 카테고리의 다른 글
[백준] 1003번: 피보나치 함수 [C++] (0) | 2023.05.18 |
---|---|
[백준] 11399번: ATM [C++] (0) | 2023.05.17 |
[백준] 1764번: 듣보잡 [C++] (0) | 2023.05.15 |
[백준] 18258번: 큐 2 [C++] (0) | 2023.05.14 |
[백준] 1620번: 나는야 포켓몬 마스터 이다솜 [C++] (0) | 2023.05.13 |
reply