μ μ Xμ μ¬μ©ν μ μλ μ°μ°μ λ€μκ³Ό κ°μ΄ μΈ κ°μ§ μ΄λ€.
Xκ° 3
μΌλ‘ λλμ΄ λ¨μ΄μ§λ©΄, 3μΌλ‘ λλλ€.Xκ° 2
λ‘ λλμ΄ λ¨μ΄μ§λ©΄, 2λ‘ λλλ€.- 1μ λΊλ€.
μ μ Nμ΄ μ£Όμ΄μ‘μ λ, μμ κ°μ μ°μ° μΈ κ°λ₯Ό μ μ ν μ¬μ©ν΄μ 1μ λ§λ€λ €κ³ νλ€. μ°μ°μ μ¬μ©νλ νμμ μ΅μκ°
μ μΆλ ₯νμμ€.
#include <bits/stdc++.h>
using namespace std;
int main()
{
int x;
cin >> x;
int arr[1000005];
arr[1] = 0;
for(int i=2;i<=x; i++) {
arr[i] = arr[i-1] + 1;
if(i % 2 == 0) arr[i] = min(arr[i], arr[i/2] + 1);
if(i % 3 == 0) arr[i] = min(arr[i], arr[i/3] + 1);
}
cout << arr[x];
return 0;
}
μ νμμ arr[i] = arr[i-1] + 1;
μ ννμΈλ°, iκ° 2λ‘ λλμ΄μ§ λμ 3μΌλ‘ λλμ΄μ§ λ, λλ λͺ«μ + 1 ν κ°κ³Ό μλμ μ νμμΌλ‘ ꡬν κ° μ€ μ΄λ κ°μ΄ μμμ§ κ²μ¬νλ€.