백준(BAEKJOOB)5585번 거스름돈 문제 c++언어

2023. 1. 13. 21:00언어/c, c++

728x90

문제

타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사고 카운터에서 1000엔 지폐를 한장 냈을 때, 받을 잔돈에 포함된 잔돈의 개수를 구하는 프로그램을 작성하시오.

 


 

그리드 알고리즘의 예시에 아주 가까운 문제이다.

 

이 것은 문제를 열심히 보면 답이 나와있다.

500엔, 100엔, 50엔, 10엔, 5엔, 1엔 이있고

1000엔 지폐를 한장 냈을때를 말하는 것이니 

 

조건은 

1. 1000엔을 냈을때 값

2. 그 값들의 엔화 동전으로 나눈 값 

3. 나머지 값

 

	n= 1000-n;

조건 1번 

 

result += n / 500;
n %= 500;

 

조건 2번 , 조건3번

 

 

문제에 

500엔, 100엔, 50엔, 10엔, 5엔, 1엔

이 있기때문에 다 각각 만들어준다.

 

 

총 코드

 

 

#include<stdio.h>
#include <algorithm>
#include <iostream>

using namespace std;

int main() {
	int n;
	int result=0;
	cin >> n;

	n= 1000-n;
	result += n / 500;
	n %= 500;

	result += n / 100;
	n %= 100;

	result += n / 50;
	n %= 50;

	result += n / 10;
	n %= 10;

	result += n / 5;
	n %= 5;

	result += n / 1;
	n %= 1;

	cout << result;

}

 

 

728x90