거스름 돈 알고리즘
탐욕(Greedy) 알고리즘 [C++ 소스]
"본문 내용"은 언제나 휴일 본 사이트에 있습니다.
//거스름 돈 (탐욕 알고리즘)
//Program.cpp
#include <iostream>
using namespace std;
enum MType
{
One=1, Five=5, Ten=10, Fifty=50,Hun=100,FHun=500,
Thous=1000,FTh=5000, TenTh=10000,FTenTh=50000
};
class Calculator
{
static const MType mtypes[10];
MType money;
int value;
int remain;
int marr[10];
public:
Calculator(MType money, int value)
{
this->money = money;
this->value = value;
remain = money - value;
}
void Calulate()
{
cout<<"가격:"<<value<<", 받은 돈:"<<money<<", 거슬러 줄 돈:"<<remain<<endl;
for(int i=0; i<10; i++)
{
marr[i] =CountChange(mtypes[i]);
if(marr[i])
{
cout<<mtypes[i]<<"원 권:"<<marr[i]<<"개, 남은 돈:"<<remain<<endl;
}
}
}
private:
int CountChange(MType howmuch)
{
int cnt = 0;
while(remain>=howmuch)
{
remain -= howmuch;
cnt++;
}
return cnt;
}
};
const MType Calculator::mtypes[10]={FTenTh,TenTh,FTh,Thous,FHun,Hun,Fifty,Ten,Five,One};
int main()
{
Calculator calculator(TenTh,1723);
calculator.Calulate();
return 0;
}
▷ 실행 결과
가격:1723, 받은 돈:10000, 거슬러 줄 돈:8277
5000원 권:1개, 남은 돈:3277
1000원 권:3개, 남은 돈:277
100원 권:2개, 남은 돈:77
50원 권:1개, 남은 돈:27
10원 권:2개, 남은 돈:7
5원 권:1개, 남은 돈:2
1원 권:2개, 남은 돈:0
프로그래밍 언어 및 기술 학습, 무료 동영상 강의 언제나 휴일
'C++ > 디딤돌 자료구조와 알고리즘 with C++' 카테고리의 다른 글
프림(Prim) 알고리즘, 최소신장 트리, 탐욕(Greedy) 알고리즘 [C++ 소스] (0) | 2016.06.13 |
---|---|
SJF(Shortest Job First) 스케쥴링 알고리즘, 탐욕(Greedy) 알고리즘 [C++ 소스] (0) | 2016.06.12 |
그래프에서 최단 거리 찾기 알고리즘, 다익스트라 알고리즘 [C++ 소스] (0) | 2016.06.12 |
너비 우선 탐색(Breath First Search) 그래프를 정점과 간선 집합으로 표현 [C++ 소스] (0) | 2016.06.12 |
너비 우선 탐색(Breath First Search) 그래프를 인접 행렬 표현 [C++ 소스] (0) | 2016.06.12 |