알고리즘 문제풀이/백준
[백준 2839] 설탕 배달
홍시홍
2020. 3. 20. 00:16
요구사항
1. 최소의 봉지 개 수로 설탕을 이동 시켜라
풀이
1. 주어지는 숫자 n을 5*i와 3*j의 조합으로 만들어 낸다
2. i+j가 최소인게 답이다
#include <iostream>
#include <queue>
#include <functional>
#include <algorithm>
#include <vector>
using namespace std;
priority_queue<int, vector<int>, greater<> > q;
int n, m;
vector<int> v;
int main() {
scanf("%d", &n);
int max5 = 987654321;
int max3 = 0;
int flag = 0;
int input = n;
int Box = 0;
for (int i = 0; i <= 1000; i++) {
for (int j = 0; j <= 10; j++) {
int num = (5 * i) + (3 * j);
if (num > n)
break;
else if (num == n) {
//cout << "A" << endl;
flag = 1;
if (i + j <= max5) {
max5 = i + j;
// cout << "i " << i << " " << j << endl;
}
}
}
}
if (flag == 1) {
cout << max5 << endl;
}
else {
cout << -1 << endl;
}
}