(cpp) Baekjoon 2839번 문제 ‘설탕배달’ - 그리디알고리즘

Baekjoon 2839번 문제 ‘설탕배달’ - 그리디알고리즘


문제

풀이

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<iostream>
using namespace std;

int n;

int main() {


	//배달할 설탕 :N (kg);
	//봉지 종류 3kg(봉지수 a), 5kg(봉지수 b);
	//봉지 수 최소
	//18 = 5*3+3*1 = 4봉지
	//N 최소 봉지수?
	//1, 5로 나눠지는지 확인 (27)
	//1.1. 5로 나눠떨어지면 정답은 걍 n/5 
	//1.2. 5로 안떨어지면 n에서 3먼저 빼줌, ans =  ans +1
	//2. 다시 5로 나눠지는지 확인(24)
	//2.1. 5로 나눠 떨어지면 정답은 ans = ans + n/5
	//2.2. 5로 안떨어지면 n에서 3먼저 빼줌 ans = ans +1
	//반복...


	cin >> n;
	int ans = 0;

	while (n >= 0) {
		if (n % 5 == 0) {
			ans = ans + (n / 5);
			cout << ans;

			return 0;
		}

		else {
			n = n - 3;
			ans += 1;
		}
	}
	cout << -1;
	return 0;
}