
5로 나누어지면 5원짜리로만 계산할 수 있는 것이다.
마찬가지로 2로 나누어지면 2원짜리로만 계산할 수 있는 것이다.
#include <iostream>
using namespace std;
int n, answer = 100000, cnt;
int main()
{
ios::sync_with_stdio(0), cin.tie(0);
cin >> n;
if (!(n % 5))
{
answer = n / 5;
}
else
{
while (n > 0)
{
if (!(n % 2))
{
answer = n / 2 + cnt;
}
++cnt;
n -= 5;
}
}
cout << (answer == 100000 ? -1 : answer);
return 0;
}
5와 나눌 수 있는지 확인하고 나눌 수 있으면 5로 나눈 값을 적용해 준다.
나눌 수 없다면 5를 빼주면서 5원의 개수를 추가하고 2로 나눌 수 있는지 확인한다. 2로 나눌 수 있다면 5원의 개수와 2로 나눈 값을 더해준 값을 적용한다.
5원을 가장 많이 쓰는 것이 이득임을 생각하면 당연한 일이다.