#include <iostream>
using namespace std;
int d[1000001];
int main() {
int n;
cin >> n;
d[1] = 0;
for (int i=2; i<=n; i++) {
d[i] = d[i-1] + 1;
if (i%2 == 0 && d[i] > d[i/2] + 1) {
d[i] = d[i/2] + 1;
}
if (i%3 == 0 && d[i] > d[i/3] + 1) {
d[i] = d[i/3] + 1;
}
}
cout << d[n] << '\n';
return 0;
}
'Problem set' 카테고리의 다른 글
[백준] 1874: 스택 수열 (0) | 2020.12.29 |
---|---|
[백준] 1676: 팩토리얼 0의 개수 (0) | 2020.12.29 |
[백준] 1406: 에디터 (0) | 2020.12.29 |
[백준] 1373: 2진수 8진수 (0) | 2020.12.29 |
[백준] 1212: 8진수 2진수 (0) | 2020.12.29 |