x = int(input())
d = [0]*(x+1)
for i in range(2,x+1):
d[i] = d[i-1] + 1
if i%3==0:
d[i] = min(d[i],d[i//3]+1)
if i%2==0:
d[i] = min(d[i],d[i//2]+1)
print(d[x])
- dμ κ³μ°λ κ°μ μ μ₯ν΄λλ€. x+1μ΄λΌκ³ ν μ΄μ λ 1λ²μ§Έ μλ d[1]μ΄ μλκ³ d[2]μ΄κΈ° λλ¬Έμ κ³μ°νκΈ° νΈνκ² d[1]μ 1λ²μ§ΈμΈ κ²μ²λΌ λ§λ€μ΄μ€λ€.
- forλ¬Έμμ 1μ λΉΌκ³ μμνλ μ΄μ : λ€μμ κ³μ°ν λλκΈ°κ° 1μ λΊ κ°λ³΄λ€ μκ±°λ νΌμ λ°λΌ μ΄μ°¨νΌ κ΅μ²΄λκΈ° λλ¬Έ
- if elif elseλ¬Έμ μ¬μ©νλ©΄ μλλ€. ifλ§ μ¬μ©ν΄μΌ μΈ μ°μ°μ λ€ κ±°μΉ μ μλ€.
- minμμ 1μ λνλ κ²μ dλ κ²°κ³Όκ° μλ κ³μ°ν νμλ₯Ό μ μ₯νλ κ²μ΄κΈ° λλ¬Έμ΄λ€. d[i]μλ λνμ§ μλ μ΄μ λ μ΄λ―Έ 1μ λΊ λ 1μ λν΄μ€ μ΄λ ₯μ΄ μκΈ° λλ¬Έμ΄λ€.
-dp λ¬Έμ μ΄λ€.
λμ κ³νλ²μ λ©λͺ¨μ΄μ μ΄μ
λ°©λ²μ μ¬μ©νμ¬ μ€λ³΅ν΄ κ³μ°λλ κ°μ μ μ₯ν΄ ν¨μ¨μ λμ¬μ€λ€.
dpλ¬Έμ μ’ μ΄λ €μ΄ κ² κ°λ€...μμ§λ μ νν μ΄ν΄λ μλμμ§λ§ λͺ λ² λ°λ³΅νλ€λ³΄λ μ²μ보λ€λ λμ κ² κ°κΈ°λ...κ³μ λ€μ νμ΄λ΄μΌκ² λ€...
그리λλ‘ ν κ²½μ°, 10μ 10-5-4-2-1λ‘ νκ² λλ―λ‘ λ°©λ²μ μκ° 5κ° λλ€.