C++ 백준 11047번
by 너나나
백준 11047번 www.acmicpc.net/problem/11047
문제 : 준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다.
동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오.
그리디 알고리즘으로 풀 수 있는 문제다!! 단위가 제일 큰 지폐부터 거스름돈으로 주면 되는데 만약 동전의 액수가 그 전 액수의 배수가 아니라면 이때는 이렇게 풀면 안 된다!!!! 지금은 배수로 주어진다고 했으니까 그냥 단순하게 풀면 된다!
#include<iostream>
using namespace std;
int a[11];
int main() {
int n, k;
cin >> n >> k;
for (int i = 0; i < n; i++) {
cin >> a[i];
}
int sum = 0;
for (int i = n - 1; i >= 0; i--) { // 오름차순으로 입력받았으니까 큰수부터 나눠줄려고
sum += k / a[i];
k = k % a[i];
}
cout << sum << '\n';
}
오랜만에 쉬어가는 문제!!!!!!
'study > 알고리즘' 카테고리의 다른 글
C++ 백준 2138번 (0) | 2021.02.16 |
---|---|
C++ 백준 1080번 (0) | 2021.02.16 |
C++ 백준 16928번 (0) | 2021.02.10 |
C++ 백준 4949번 (0) | 2021.01.25 |
C++ 백준 10828번 (0) | 2021.01.22 |
블로그의 정보
공부 기록
너나나