https://www.acmicpc.net/problem/2720
풀이
거스름돈으로 남겨주는 동전의 갯수를 최소화 하는 문제입니다.
그리디 알고리즘을 사용해 답을 구할 수 있습니다.
#include <iostream>
#include <vector>
using namespace std;
int main()
{
// freopen("input.txt", "r", stdin);
// Quarter = 0.25
// Dime = 0.1
// Nickel = 0.05
// Penny = 0.01
int TC;
cin >> TC;
double dollar;
double quater = 25;
double dime = 10;
double nickel = 5;
double penny = 1;
for (int i = 0; i < TC; i++) {
cin >> dollar;
vector<int> v(4, 0);
// quater
v[0] = (int) dollar / quater;
dollar = dollar - (v[0] * quater);
// dime
v[1] = (int) dollar / dime;
dollar = dollar - (v[1] * dime);
// nickel
v[2] = (int) dollar / nickel;
dollar = dollar - (v[2] * nickel);
// penny
v[3] = (int) dollar / penny;
dollar = dollar - (v[3] * penny);
cout << v[0] << " " << v[1] << " " << v[2] << " " << v[3] << endl;
}
return 0;
}
'백준' 카테고리의 다른 글
[Python] 백준 대피소 (1) | 2024.09.25 |
---|---|
[C++] 백준 전자레인지 (0) | 2024.06.20 |
[C++] 백준 고층 건물 (0) | 2024.06.18 |
[C++] 백준 투명 (0) | 2024.06.18 |
[C++] 백준 분산처리 (1) | 2024.06.16 |