본문 바로가기

Algorithm

(C++) - 백준(BOJ) 2839 : 설탕배달 답

반응형

//1.3의 배수만 일 때 1)N%5%3==0

// 2)N%5%3!=0

//2.5의 배수일 때 cout << N/5

//3.둘 다 아닐 때 3x+5y = n

 

#include <iostream>
using namespace std;
int main() {
    int cnt=0,com=0, N;
    cin >> N;
    if (N % 5 == 0)
        cout << N / 5;
    else if (N % 5 != 0 && N % 3 == 0)
    {
        com = N / 3;
        while (N >= 3)
        {
            N -= 3;
            cnt++;
            if (N % 5 == 0)
            {
                cnt += N / 5;
                N %= 5;
            }
        }
        if (N != 0) { cnt = 0; }
        if (cnt != 0)
        {
            cout << (com > cnt ? cnt : com);
        }
    }
    else if (N % 5 != 0 && N % 3 != 0)
    {
        while (N >= 3)
        {
            N -= 3;
            cnt++;
            if (N % 5 == 0)
            {
                cnt += N / 5;
                N %= 5;
            }
        }
        if (N != 0)
            cout << "-1" << '\n';
        else
            cout << cnt << '\n';
    }
    else
        cout << "-1" << '\n';
}