문제 출처: https://www.acmicpc.net/problem/2839
Bronze 1
dfs로 하면 시간초과가 난다. 그래서 그냥 직관적으로 풀었다.
가장 최소값이니깐 5로 나뉘어지는 걸 먼저로 3씩 뺴준다.
#include <iostream>
using namespace std;
int main() {
int N;
cin >> N;
int cnt = 0;
while (N > 0) {
if (N % 5 == 0) {
cnt += (N / 5);
N /= 5;
break;
}
N -= 3;
cnt++;
if (N < 0) {
cnt = -1;
break;
}
}
cout << cnt << "\n";
return 0;
}