๋ฌธ์ ๋ฅผ ๋ณด์๋ง์ ๋๋์ด ์๋ค.
์ ์ด๊ฑฐ.. ์๊ณ ๋ฆฌ์ฆ์ด ํ์ํ๋ค!!!!!
์ฒ์์๋ 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์ด ๋๋ค
๐ฅณ ์ฒ์์ ์ ๋ ์ดํด ๋ชปํ๋๋ฐ ์ง๊ธ์ ์ดํด ๋๋๊ฑธ ๋ณด๋ ์๊ณ ๋ฆฌ์ฆ ์ค๋ ฅ(์ด๋ผ๊ธฐ๋ณด๋ค ๊ฑ ๋
ธ๋ จํจ) ์ด ์๋ผ๋ ์ค์ธ๊ฐ๋ณด๋ค!!
๐ ์ฐธ๊ณ ๋ธ๋ก๊ทธ
'๐ ์๊ณ ๋ฆฌ์ฆ > ๋ฐฑ์ค JS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] node.js/ 2606_๋ฐ์ด๋ฌ์ค (0) | 2021.11.07 |
---|---|
๋ฐฑ์ค] node.js/ 1448_ ์ผ๊ฐํ ๋ง๋ค๊ธฐ (0) | 2021.10.23 |
[๋ฐฑ์ค] node.js/ 1748_ ์ ์ด์ด์ฐ๊ธฐ(1) (0) | 2021.10.22 |
[๋ฐฑ์ค] node.js/ 15650 N๊ณผM(2) (0) | 2021.10.21 |
[๋ฐฑ์ค] node.js/ 15649 N๊ณผ M 1 (0) | 2021.10.20 |
๋๊ธ