1463 1๋ก๋ง๋ค๊ธฐ ๐
๋ฌธ์
์ ์ X์ ์ฌ์ฉํ ์ ์๋ ์ฐ์ฐ์ ๋ค์๊ณผ ๊ฐ์ด ์ธ ๊ฐ์ง ์ด๋ค.
1. X๊ฐ 3์ผ๋ก ๋๋์ด ๋จ์ด์ง๋ฉด, 3์ผ๋ก ๋๋๋ค.
2. X๊ฐ 2๋ก ๋๋์ด ๋จ์ด์ง๋ฉด, 2๋ก ๋๋๋ค.
3. 1์ ๋บ๋ค.
์ ์ N์ด ์ฃผ์ด์ก์ ๋, ์์ ๊ฐ์ ์ฐ์ฐ ์ธ ๊ฐ๋ฅผ ์ ์ ํ ์ฌ์ฉํด์ 1์ ๋ง๋ค๋ ค๊ณ ํ๋ค. ์ฐ์ฐ์ ์ฌ์ฉํ๋ ํ์์ ์ต์๊ฐ์ ์ถ๋ ฅํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 10^6๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ ์ N์ด ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ์ฐ์ฐ์ ํ๋ ํ์์ ์ต์๊ฐ์ ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ1
2
์์ ์ถ๋ ฅ1
1
์์ ์ ๋ ฅ2
10
์์ ์ถ๋ ฅ2
3
์ฝ๋
โ ์ด์ ์ ๊ตฌํ๋ ๊ฐ๋ค์ ๋ฐฐ์ด์ ๊ณ์ ์ ์ฅํจ์ผ๋ก์จ ๊ตฌํ๋ ๊ฐ๋ค์ +1์ ํ๋ ๋ฐฉ์์ผ๋ก ๊ตฌํ๋ค.
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
rl.on("line", function (line) {
const num = Number(line); // ๋ฐฐ์ด ํฌ๊ธฐ๋ฅผ ๋ง๋ค๊ธฐ ์ํด ์
๋ ฅ ๋ฐ์ ๊ฐ ์ซ์๋ก ํ๋ณํ
const arr = new Array(num + 1).fill(0); // ์
๋ ฅ๋ฐ์ ํฌ๊ธฐ๋งํผ ๋ฐฐ์ด ๊ณต๊ฐ ๋ง๋ค๊ณ 0์ผ๋ก ์ด๊ธฐํ
for (let i = 2; i <= num; i++) {
arr[i] = arr[i - 1] + 1; // arr[2]์ 1๋์
if (i % 2 === 0) {
// i๊ฐ 2๋ก ๋๋์ด ๋จ์ด์ง๋ฉด
arr[i] = Math.min(arr[i], arr[i / 2] + 1); // ์์์ ๋์
ํ 1(arr[i])๊ณผ 0(arr[2/2]+1)์ ๋น๊ตํด์ ์์ ๊ฐ์ arr[2]์ ๋์
}
if (i % 3 === 0) {
// i๊ฐ 3์ผ๋ก ๋๋์ด ๋จ์ด์ง๋ฉด
arr[i] = Math.min(arr[i], arr[i / 3] + 1); // ์์ ์ฝ๋์ ๋ง์ฐฌ๊ฐ์ง (3์ผ๋ก ๋๋์ด์ก๋ ๊ณผ๊ฑฐ ์ซ์๋ค์ ์ฐพ์์ผ๋๋ฏ๋ก i/3)
}
}
console.log(arr[num]);
}).on("close", function () {
process.exit();
});
Author And Source
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(1463 1๋ก๋ง๋ค๊ธฐ ๐), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://velog.io/@veloger_97/1463-1๋ก๋ง๋ค๊ธฐ์ ์ ๊ท์: ์์์ ์ ๋ณด๊ฐ ์์์ URL์ ํฌํจ๋์ด ์์ผ๋ฉฐ ์ ์๊ถ์ ์์์ ์์ ์ ๋๋ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค