백준/브루트포스

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;
}