🖥️ CS/Baekjoon Algorithms
#2839번 설탕 배달 (c++)
한국의 메타몽
2020. 2. 12. 02:14
#include <iostream>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int w = 0;
int a,b,i=0;
cin >> w;
while(a>=0)
{
a=(w/5)-i;
if(a<0)
break;
b=(w-(5*a))/3;
if((5*a+3*b)==w)
{
cout << a+b;
return 0;
}
else
i++;
}
cout << "-1";
return 0;
}
1. 5의 배수로 목을 먼저 차지한다.
2. 나머지에서 3의 배수로 목을 처지 한다.
3. 1번 * 5 + 2번 * 3이 w로 값이 떨어지지 않으면 5의 배수를 줄여나가기.
4. 이 과정에서 5의 배수로 목을 차지하는 값이 음수가 되면, 종료하고 -1을 리턴한다.
(어떻게해도 값이 딱 떨어지지 못하는 경우에 해당된다.)
식을 미리 세워두고 코딩하니 쉬웠던 문제다.