알고리즘
[BOJ/백준] 11047번 - 동전 0
lewns2
2021. 6. 25. 23:07
단계별로 풀어보기 > 그리디 알고리즘 > [1단계] 11047번
문제 링크 : 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
문제 요약
1. 그리디 알고리즘을 사용하는 대표적인 동전 문제
입력 복사
예제 입력 1 >> 출력 : 6
10 4200
1
5
10
50
100
500
1000
5000
10000
50000
예제 입력 2 >> 출력 : 12
10 4790
1
5
10
50
100
500
1000
5000
10000
50000
CODE
#include <bits/stdc++.h>
using namespace std;
int main() {
int n,k;
cin >> n >> k;
vector<int> v(n);
for(int i =0; i<n; i++) {
cin >> v[i];
}
int cnt = 0;
for(int i = n-1; i >= 0; i--) {
cnt = cnt + k / v[i];
k = k % v[i];
if(k==0) break;
}
cout << cnt << endl;
}
문제 풀이
- 화폐 가치가 큰 동전부터 차례로 선택하는 대표적인 그리디 알고리즘 풀이 문제.
- 복잡하게 생각해, 구태여 조건을 덧붙일 필요가 없었다...
참고 URL : https://salon.tistory.com/50
[C++][Competitive Programmer's Handbook] 그리디 알고리즘(1) - 동전 문제와 주의 사항
본 게시글은 "Competitive Programmer's Handbook"을 보며 임의로 해석하며 공부한 내용입니다. Greedy algorithms 그리디 알고리즘은 항상 그 순간에 가장 좋아보이는 선택을 함으로서 문제에 대한 해결책을
salon.tistory.com
728x90
반응형