Algorithm/Baekjoon Online Judge
백준 2839 설탕배달 : C++
감성적인 개발자
2021. 8. 17. 15:20
https://www.acmicpc.net/problem/2839
2839번: 설탕 배달
상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그
www.acmicpc.net
#include <iostream>
using namespace std;
int main(){
int n, three, fiv;
cin >> n;
int tmp = n % 5;
fiv = n/5;
// 14kg 일 경우 tmp는 4kg
if(fiv >= 0){
// 4kg은 3으로 나누어 떨어지지 않기 때문에 5kg을 하나 제거
while(tmp % 3 != 0){
fiv--;
tmp += 5;
}
// 4kg -> 9kg 으로 변경한 뒤 3kg 봉지 담기
if(tmp % 3 == 0){
three = tmp/3;
}
}
// 5kg을 모두 제거했음에도 3kg으로도 안나누어진다면
if(fiv < 0){
cout << -1;
return 0;
}
cout << fiv + three;
}
1. 5kg 봉지에 모두 담는다.
2. 남은 설탕이 3kg 봉지로 나누어 떨어지지 않는다면 5kg 봉지를 하나씩 제거해가며 체크한다.
3. 5kg 봉지를 제거하던 중 3kg으로 나누어 떨어지는 경우가 있다면 정답 출력
3-1. 5kg 봉지를 모두 제거했음에도 3kg으로 나누어 떨어지지 않느다면 -1 출력