https://www.acmicpc.net/problem/2839
그리디 문제를 너무 오랜만에 풀어보는데..
5로 다 나누고 3을 생각할 게 아니라, 5로 나눈 나머지가 0인지를 보고 그때 그때 처리해줘야한다.
N이 5로 나눈 나머지가 0이면 바로 ans 출력하고 종료하고,
0이 아닐 경우에는 3을 빼주고 다시 반복문 도는 과정을 반복!
#include <iostream>
using namespace std;
int main() {
int N;
int ans = 0;
cin >> N;
while (N >= 0) {
if (N % 5 == 0) {
ans += (N / 5);
cout << ans;
return 0;
}
else {
N -= 3;
ans++;
}
}
cout << -1;
return 0;
}