알고리즘 공부 및 문제 풀이/백준(BOJ)
[c++] 백준 2839 설탕 배달
yoonjiy
2021. 7. 7. 22:21
백준 단계별로 풀어보기 [기본수학 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;
}