728x90
Hint
1. nμμ 2λ 3μ λλκ±°λ 1μ λΊ μκ°νμ§ λ§κ³ 1λΆν° κ³ λ €νλ μ½λλ‘ μ§μΌν¨
2. 1λΆν° nκΉμ§μ μ«μλ₯Ό κ°κ° λ§λ€κΈ° μν΄μ λͺλ²μ μ°μ° νμκ° νμνμ§ μκ°ν΄λ΄μΌ ν¨
3. Memoization κΈ°λ² νμ©
λ°±μ€ 1463λ²: 1λ‘ λ§λ€κΈ° (νμ΄λ³΄κΈ°)
n = int(input())
ans = [0] * (n+1) # ans[i] = iκ° 1μ΄ λκΈ° μν μ°μ° νμ
for i in range(2, n+1):
ans[i] = ans[i-1] + 1 # λν΄νΈλ‘λ κ·Έ μ μ«μμμ +1 νκ±°λκΉ νμλ κ·Έ μ μ«μμ νμμ +1 νκ²μ
if i % 3 == 0:
ans[i] = min(ans[i], ans[i // 3] + 1) # λν΄νΈμ x3 νκΈ° μ μ μ«μμ νμμμ +1 νκ±° μ€μ λ μμ μκ° μ΅μ μ νμ!
if i % 2 == 0:
ans[i] = min(ans[i], ans[i // 2] + 1) # μ΄λ―Έ λ€μ΄μλ κ°κ³Ό x2 νκΈ° μ μ μ«μμ νμμμ +1 νκ±° μ€μ λ μμ μκ° μ΅μ μ νμ!
print(ans[n])
'𧩠Algorithm > λ€μ΄λλ―Ή νλ‘κ·Έλλ°' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
λ€μ΄λλ―Ή νλ‘κ·Έλλ° (Dynamic Programming) (0) | 2023.06.13 |
---|
λκΈ