본문 바로가기

알고리즘 공부 및 문제 풀이/백준(BOJ)

[c++] 백준 2839 설탕 배달

백준 단계별로 풀어보기 [기본수학 1] 설탕 배달

https://www.acmicpc.net/problem/2839

 

2839번: 설탕 배달

상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그

www.acmicpc.net

 

[풀이]

n = 3*a + 5*b 이므로, 가능한 a+b의 최솟값을 구한다. a가 3과 곱해지므로 n = 3*a + 5*b를 만족하는 경우가 더 있더라도 count 값은 최소가 아니다. 따라서 n이 나누어떨어지면 바로 루프를 탈출하고, 만약 count 값이 a+b로 바뀌지 않고 여전히 0이면 정확히 나누어떨어지지 않으므로 -1을 출력한다. 

 

[코드]

#include <iostream>

int main(void) {
	int n, count=0;
	int a, b;

	std::cin >> n;
	for (a = 0; a <= n / 3; a++) {
		if ((n - 3 * a) % 5 == 0)
			b = (n - 3 * a) / 5;
		else continue;
		count = a + b;
		break;
	}
	if (count != 0)
		std::cout << count;
	else std::cout << "-1";

	return 0;
}