본문 바로가기
문제 풀이/백준(BOJ)

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

by 희조당 2021. 6. 26.
728x90

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


문제 풀이

 그리디 알고리즘은 현재 가장 최적의 것부터 사용하는 알고리즘이다.

동전 개수가 최소가 되려면 가장 큰 것부터 따지면 된다.

느낀 점

 그리디 알고리즘의 시작이다! 문제 자체가 쉬워서 최대한 이쁘게 코드를 짜고 싶었다. 제출하고 보니 지저분 한 것 같기도 하다.

코드

#include <iostream>
#include <algorithm>

using namespace std;

int n, k, cnt = 0;
int v[11];

int main() {
	cin >> n >> k;
	for (int i = 0; i < n;i++) {
		cin >> v[i];
	}
	reverse(begin(v), begin(v) + n);
	for (int i = 0; i < n; i++) {
		cnt += k / v[i];
		k %= v[i];
	}
	cout << cnt;
}

'문제 풀이 > 백준(BOJ)' 카테고리의 다른 글

[C++] 백준 11399번 : ATM  (0) 2021.06.28
[C++] 백준 1931번 : 회의실 배정  (0) 2021.06.27
[C++] 백준 12865번 : 평범한 배낭  (0) 2021.06.25
[C++] 백준 1912번 : 연속합  (0) 2021.06.25
[C++] 백준 9251번 : LCS  (0) 2021.06.25

댓글