알고리즘 연습

C++ 11047 동전0 (그리디알고리즘)

728x90

#include<iostream>
#include<vector>
#include<algorithm>

using namespace std;

int main() {

	int n, k;
	cin >> n >> k;

	vector<int>coin(n);
	int cnt = 0;

	for (int i = 0; i < n; i++) {
		cin >> coin[i];
	}
	sort(coin.begin(), coin.end(), greater<int>());

	for (int i = 0; i < n; i++) {
		while (k - coin[i] >= 0) {
			cnt++;
			k -= coin[i];
		}
	}
	cout << cnt << '\n';
}

입력되는 숫자를 역순으로 정렬하고 입력된 k 값인 4,200원보다 작은 가장 큰 수(1000)부터 뺄셈을 진행하고 카운트를 늘림. 남는 200원도 동일하게 100원으로 빼주게 된다.

몇 개가 필요한지는 cnt로 확인 가능. 

 

 

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=namjs1540&logNo=221578707970 

 

백준 11047 동전 0 풀이 C++

https://www.acmicpc.net/problem/11047 그리디 알고리즘 문제이다. 그리디 알고리즘 = 탐욕 알고리...

blog.naver.com

 

728x90

'알고리즘 연습' 카테고리의 다른 글

C++ 1541 잃어버린 괄호  (0) 2021.10.07
C++ 1931 회의실 배정  (0) 2021.10.07
C++ 11650 좌표 정렬하기  (1) 2021.10.01
C++ 1427 소트 인사이드  (0) 2021.09.30
C++ 2231 분해합  (0) 2021.09.30