매일 조금씩

[C++] 백준 2839번: 설탕배달 본문

알고리즘

[C++] 백준 2839번: 설탕배달

mezo 2019. 9. 6. 00:44
728x90
반응형

 

 

가장 적은 갯수를 구하기 위해선 5킬로그램 봉지를 먼저 넣어야한다.

이때, 5킬로그램 봉지가 들어갔을때 나머지 킬로그램을 3킬로그램 봉지가 채우지 못할때를 조심해야한다.

 

5킬로그램 봉지의 수는 N킬로그램에 들어갈 수 있는 5킬로그램봉지의 최대갯수(N/5)를 넘지 않는다는 가정하에

5킬로그램 봉지의 수를 하나씩 늘이면서 나머지 킬로그램을 3킬로그램 봉지가 채울 수 있는지 확인한다.

 

 

 

#include <iostream>
using namespace std;

int main() {
	
	int N;
	cin >> N;
	if (N < 3 || N > 5000) {
		cout << "잘못된 입력" << endl; 
		return -1;
	}
	int five = 0;
	int three = 0;
	int sum = 0;

	for (; five <= N / 5; five++) {
		if ((N - 5*five) % 3 == 0 ) {
			three = (N - 5 * five) / 3;
			sum = five + three;
		}
	}

	if (sum == 0)
		cout << -1 << endl;
	else cout << sum << endl;
	
 }
728x90
반응형

'알고리즘' 카테고리의 다른 글

[C++] 백준 10809번: 알파벳 찾기  (0) 2019.09.12
[C++] 백준 11383번: 뚊  (0) 2019.09.10
[C++] 백준 2799번: 블라인드  (0) 2019.09.09
[C++] 백준 10822번 : 더하기  (0) 2019.09.04
[C++] 백준 2447번: 별찍기 - 10  (0) 2019.09.03