[λ°±μ€] node.js/ 1463_1λ‘ λ§λ€κΈ°
λ¬Έμ λ₯Ό 보μλ§μ λλμ΄ μλ€.
μ μ΄κ±°.. μκ³ λ¦¬μ¦μ΄ νμνλ€!!!!!
μ²μμλ 3λΆν° λλκ³ , 2λΆν°λλκ³ -1 νλ©΄ λμ§ λΌκ³ μκ°νλλ° μ²λ§μ λ§μ~
ννΈμ λ‘νλ λμ μλ κ°λ₯΄μΉ¨μ λ³΄κ³ λ°λ‘ λλ Έλ€.
μ°Έκ³ νμ΄
const fs = require('fs');
let n = (fs.readFileSync('./dev/stdin') + '').toString().trim();
n = Number(n);
const DP = new Array(n + 1).fill(0);
for (let i = 2; i <= n; i++) {
DP[i] = DP[i - 1] + 1;
if (i % 2 === 0) DP[i] = Math.min(DP[i], DP[i / 2] + 1);
if (i % 3 === 0) DP[i] = Math.min(DP[i], DP[i / 3] + 1);
}
console.log(DP[n]);
νμ΄λ λ€μ΄λλ―Ήνλ‘κ·Έλλ° λ¬Έμ !
μ λ§ λ€μν λ°©λ²μ κ°μ§μλ₯Ό λ€ κ³μ°ν΄λ³΄κ³ μ΅μ κ³μ°μλ₯Ό ꡬν΄μΌ νλλ° κ·Έλ¬κΈ° μν΄μλ
nμ κ³μ°μλ₯Ό ꡬνκΈ° μν΄μλ κ·Έ μ μ κ°λ€μ μ΅μ κ³μ°μλ€μ μ΅μκ°λ€μ κ²½μν΄μ μ¬λ €μ€μΌ νλ κ²μ΄μλ€.
λ€μ΄λλ―Ή νλ‘κ·Έλλ° νΈλ νμμλ κ°λ¨ν μ€λͺ μ ν΄λ¨μλλ°
λ¬Έμ νμ΄
μμλ‘ 10μ κ²½μ°λ λ κ°μ§ κ²½μ°λ₯Ό λλ €λ³΄κ³ μ΅μκ°μ κ°μ§κ² λλλ°
1) 9μ μ΅μ κ³μ°μ + 1
2) 2λ‘ λλ μ§λ©΄ min(2λ‘λλκ°, νμ¬κ°) min (DP[5]+1, DP[10])
2) 3λ‘ λλ μ§λ©΄ min(3λ‘λλκ°, νμ¬κ°) 3μΌλ‘ λλ μ§μ§ μμ
μ¬κΈ°μ +1 μ ν΄μ£Όλ μ΄μ λ
μ μ κ°μμ 10μ λλ¬νκΈ° μ§μ μ μ΅μ κ³μ°μμλ€ λλ¬ν κ²½μ°μ μ(1)μ λν΄μ£ΌκΈ° λλ¬Έμ΄λ€.
< λ°λ³΅λ¬Έμ λλ©° νμΈν DPλ°°μ΄
DP[10] μλ
1) DP[9]+1 2+1= 3
2) DP[5]+1 4+1 = 5
μ€ μ΅μκ°μ΄ λ€μ΄κ°κΈ° λλ¬Έμ 3μ΄ λλ€
π₯³ μ²μμ μ λ μ΄ν΄ λͺ»νλλ° μ§κΈμ μ΄ν΄ λλκ±Έ 보λ μκ³ λ¦¬μ¦ μ€λ ₯(μ΄λΌκΈ°λ³΄λ€ κ± λ
Έλ ¨ν¨) μ΄ μλΌλ μ€μΈκ°λ³΄λ€!!
π μ°Έκ³ λΈλ‘κ·Έ