관리 메뉴

기억을 위한 기록들

[백준 14916: 거스름돈] - C++ 본문

Coding Test - cpp/Greedy

[백준 14916: 거스름돈] - C++

에드윈H 2021. 1. 29. 17:34

www.acmicpc.net/problem/14916

 

14916번: 거스름돈

첫째 줄에 거스름돈 액수 n(1 ≤ n ≤ 100,000)이 주어진다.

www.acmicpc.net

 

#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
	int n;


	cin >> n;

	if (n <= 3)
	{
		cout << -1 << endl;
		return 0;
	}

	int cnt = 0;
	int coin5 = 0;

	coin5 = n / 5;
	while (1)
	{
		int temp = n - (5 * coin5); //현재 가진 돈에서 5원의 수만큼 빼고 남은돈 temp


		if (temp % 2 == 0) //남은돈 temp에서 2원으로 나눠 떨어지면 갯수 세고 탈출
		{
			cnt += coin5;
			cnt += (temp / 2);
			break;
		}

		coin5--; //나누어 안떨어지면 5원갯수 줄이기
	}

	cout << cnt << endl;

	return 0;
}