#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을 리턴한다.
(어떻게해도 값이 딱 떨어지지 못하는 경우에 해당된다.)
식을 미리 세워두고 코딩하니 쉬웠던 문제다.
'🖥️ CS > Baekjoon Algorithms' 카테고리의 다른 글
#1193번 분수찾기 (c++) (0) | 2020.02.13 |
---|---|
#2292번 벌집 (c++) (0) | 2020.02.12 |
#1712번 손익분기점 (c++) (0) | 2020.02.12 |
#1316번 그룹단어체커 (c++) (0) | 2020.02.11 |
#1065번 한수 (c++) (0) | 2020.02.08 |