π 1463 λ¬Έμ
μ μ Xμ μ¬μ©ν μ μλ μ°μ°μ λ€μκ³Ό κ°μ΄ μΈ κ°μ§ μ΄λ€.
- Xκ° 3μΌλ‘ λλμ΄ λ¨μ΄μ§λ©΄, 3μΌλ‘ λλλ€.
- Xκ° 2λ‘ λλμ΄ λ¨μ΄μ§λ©΄, 2λ‘ λλλ€.
- 1μ λΊλ€.
μ μ Nμ΄ μ£Όμ΄μ‘μ λ, μμ κ°μ μ°μ° μΈ κ°λ₯Ό μ μ ν μ¬μ©ν΄μ 1μ λ§λ€λ €κ³ νλ€. μ°μ°μ μ¬μ©νλ νμμ μ΅μκ°μ μΆλ ₯νμμ€.
μ λ ₯
첫째 μ€μ 1λ³΄λ€ ν¬κ±°λ κ°κ³ , 10^6λ³΄λ€ μκ±°λ κ°μ μ μ Nμ΄ μ£Όμ΄μ§λ€.
μΆλ ₯
첫째 μ€μ μ°μ°μ νλ νμμ μ΅μκ°μ μΆλ ₯νλ€.
π§ νμ΄
10μ κ²½μ°μ 10 → 9 → 3 → 1 λ‘ 3λ² λ§μ λ§λ€ μ μλ€.
N = int(input())
dp = [0] * (N+1)
for i in range(2, N+1) :
dp[i] = dp[i-1] + 1
if i % 2 == 0 :
dp[i] = min(dp[i], dp[i//2] + 1)
if i % 3 == 0 :
dp[i] = min(dp[i], dp[i//3] + 1)
print(dp[N])
728x90