C++/디딤돌 자료구조와 알고리즘 with C++

거스름 돈 알고리즘 탐욕(Greedy) 알고리즘 [C++ 소스]

언제나휴일 2016. 6. 12. 23:27
반응형

거스름 돈 알고리즘

탐욕(Greedy) 알고리즘 [C++ 소스]


Program.cpp




"본문 내용"은 언제나 휴일 본 사이트에 있습니다.



//거스름 돈 (탐욕 알고리즘)

//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 



프로그래밍 언어 및 기술 학습, 무료 동영상 강의 언제나 휴일

반응형