백준/브루트포스
2839번: 설탕 배달 [C++]
Koalitsiya
2023. 3. 27. 17:34
문제
풀이
주어진 n을 5로 나눈 몫 cnt5를 구한 다음, n에서 5 * 몫을 뺀 값을 3으로 나눈 나머지 cnt3의 값이 0이 나오거나 cnt5가 0보다 작을 때까지 반복 후, 전자면 cnt3 + cnt5를 출력하고, 후자면 정확하게 n이 될 수 없으므로 -1을 출력한다.
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n;
int cnt3 = 0, cnt5 = 0;
bool flag = true;
cin >> n;
cnt5 = n / 5;
while (true) {
if (cnt5 < 0) {
flag = false;
break;
}
if ((n - 5 * cnt5) % 3 == 0) {
cnt3 = (n - 5 * cnt5) / 3;
break;
}
cnt5--;
}
if (flag == false) cout << -1;
else cout << cnt3 + cnt5;
return 0;
}