https://www.acmicpc.net/problem/5585

 

5585번: 거스름돈

타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사

www.acmicpc.net

그냥 어 

읽고 바로 생각했다.

 

시간 적기로 했는데.

 

알고리즘 

  • 500부터 나눠서 나눈 몫을 더하고
  • 나눈 나머지를 가지고 또 500확인한다. 
  • 500이 확인 다 했으면 (500으로 나눈 몫이 0이면 )
  • 그 다음 100으로 넘어간다. 

소스코드 

#include <iostream>

using namespace std;
int main() {
	int input,output = 0;
	int coin[6] = { 500,100,50,10,5,1 };
	cin >> input;
	input = 1000 - input;
	for (int i = 0; i < 6; i++) {
		while (input / coin[i] != 0) {
			output += input / coin[i];
			input %= coin[i];
		}
	}
	cout << output;
	return 0;
}

 

python

coin = [500,100,50,10,5,1]
input_num = int(input())
output = 0
input_num = 1000-input_num
for i in range(6):
    while (input_num//coin[i]) != 0:
        output += input_num//coin[i]
        input_num %= coin[i]
        
print(output)

+ Recent posts