/ 알고리즘

설탕 공장

알고리즘 다중 반복문 설탕공장
https://4am.kr/-ec-84-a4-ed-83-95-ea-b3-b5-ec-9e-a5/

프로그램 명: sugar

제한시간: 1 초
미코는 설탕공장의 배달원이다.

이 공장에는 3 , 5 킬로그램 두 가지 종류의 설탕 포대가 있다.

주문량이 주어질 경우 가장 최소의 설탕 포대로 배달하게 미코를 도와 주는 것이다.

입력

주문 량 N 이 입력으로 주어진다. N (3 ≤ N ≤ 5000).

출력

최소 포대 수를 출력하고 가능하지 않는 경우에는 -1 을 출력한다.

입출력 예

입력 4 출력 -1 입력 9 출력 3 입력 18 출력 4

출처:coci 2011 contest7 1

#include <iostream>
using namespace std;
int main()
{
    int n, sugar, cnt = 0;
    cin >> n;
    sugar = n;
    while (1) {
        sugar -= 5;
        cnt++;
        if (sugar == 0) {
            cout << cnt << endl;
            return 0;
        }
        if (sugar < 5)
            break;
    }
    while (1) {
        sugar -= 3;
        cnt++;
        if (sugar == 0) {
            cout << cnt << endl;
            return 0;
        }
        if (sugar < 3) {
            sugar = n;
            cnt = 0;
            break;
        }
    }
    while (1) {
        sugar -= 3;
        cnt++;
        if (sugar % 5 == 0) {
            cnt += sugar / 5;
            cout << cnt << endl;
            return 0;
        }
        if (sugar == 0) {
            cout << cnt << endl;
            return 0;
        }
        if (sugar < 3) {
            cout << "-1" << endl;
            return 0;
        }
    }
    return 0;
}