본문 바로가기
컴퓨터 관련

1.5. 금액 맞추기 알고리즘

by _BlankSpace 2016. 7. 12.

문제. 심각한 인플레이션을 겪고 있는 어느 나라에서는 1, 2, 5, 10, 20, 50만 원의 여섯 가지 지폐를 사용한다.

 

이러한 지폐 종류를 이용하여 100만원을 지불하는 방법은 모두 몇 가지 인가?

 

 

1.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
using namespace std;
int main(void){
    int bills[6= {125102050};
    int count = 0, money = 100, i0, i1, i2, i3, i4;
    
    for(i0 = money; i0 >=0 ; i0-= bills[0])
        for(i1 = i0; i1 >= 0; i1 -= bills[1])
            for(i2= i1; i2 >= 0; i2 -= bills[2])
                for(i3 = i2; i3 >= 0; i3 -= bills[3])
                    for(i4 = i3; i4>= 0; i4 -= bills[4])
                        if(i4 % bills[5== 0)
                            count++;
    
    cout<<count;
    return 0;
}
cs

 

이런 식의 코드 작성은 문제를 해결하는데 부족함이 없지만, 지폐의 종류와 지불해야 하는 액수의 종류를 더 늘릴 때 문제가 발생한다.

 

 

2. 그러므로 직접 지폐의 종류와 액수를 입력받아서 해결하는 프로그램을 작성하는 방법을 생각해보자.

 

나는 재귀적 방법을 사용하기로 했다.

 

 

 

 

 

 

 

 

 

'컴퓨터 관련' 카테고리의 다른 글

수 분할 알고리즘  (2) 2016.07.26
퀵 정렬 알고리즘  (0) 2016.07.22
파워쉘(PowerShell) 정리 [간단하게]  (0) 2016.07.10
쉘 스크립트(Shell Script) 정리 (1)  (0) 2016.07.10
시큐어 코딩(Secure Coding) 이란?  (0) 2016.07.07

댓글