๋ฌธ์ ๋งํฌ
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ํ๋ ธ์ด์ ํ
ํ๋ ธ์ด ํ(Tower of Hanoi)์ ํผ์ฆ์ ์ผ์ข ์ ๋๋ค. ์ธ ๊ฐ์ ๊ธฐ๋ฅ๊ณผ ์ด ๊ธฐ๋์ ๊ฝ์ ์ ์๋ ํฌ๊ธฐ๊ฐ ๋ค์ํ ์ํ๋ค์ด ์๊ณ , ํผ์ฆ์ ์์ํ๊ธฐ ์ ์๋ ํ ๊ธฐ๋ฅ์ ์ํ๋ค์ด ์์ ๊ฒ์ด ์์ ์๋๋ก ์์๋
programmers.co.kr
์ ๊ทผ ๋ฐฉ๋ฒ
์ฒ์์ ์ถ๋ ฅ๊ฐ์ ์ ๋๋ก ์๋ณด๊ณ ํ๋ ธ์ด์ ํ์ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ๋ก ์ฐฉ๊ฐํ์ฌ
๋๋ฌด ์ฝ๋ค๊ณ ์๊ฐํ๋ฉฐ ๊ท์น์ ์ฐพ์๋ค.
๊ทธ๋ฌ๋ ๋ค์ ์์ธํ ๋ณด๋ ๋จ์ํ ๊ฒฝ์ฐ์ ์๋ฅผ ์ฐพ๋ ๊ฒ์ด ์๋ ์ด๋ ์ขํ๋ฅผ ์ฐพ๋ ๋ฌธ์ ์๊ณ
์์ ์์์ ํจํด์ ์ฐพ์๋ณด๋ ค ํ๋๋ฐ.. ์ฌ๊ท ๊ฐ๊ธฐ๋ ํ๊ณ , dp ๊ฐ๊ธฐ๋ ํ ๊ฒ์ด ๋ฐฉํฅ์ ์ฐพ์ง ๋ชปํ๋ค.
(๊ทธ๋๋ง n์ด ์ง์์ผ๋, ํ์์ผ๋ ์ด๋ฐ ์ด๋์ ๊ฐ๋ค๋ ๊ฒ์ ์ ์ ์์๋ค.)
๊ณ์ ๊ณ ๋ฏผํด๋ ๋ฐฉ๋ฒ์ด ๋ ์ค๋ฅด์ง ์์ ๊ตฌ๊ธ์ ํ์ ๋น๋ ธ๋๋ฐ
์์ง๋ ์ฌ๊ท์ ์ธ ๋ฐฉ์์๋ ๋จธ๋ฆฌ๊ฐ ๋ฐ๋ผ๊ฐ์ง ๋ชปํ๋ ๊ฒ ๊ฐ๋ค..
์ค๋ํซ์ ์ด์ฉํด ์ดํด์ ๋์์ ๋ฐ์ ์ ์์๋ค.
์ฐธ๊ณ ๋ธ๋ก๊ทธ
function solution(n) {
var answer = [];
const hanoi = (n, src, dst, mid) => {
if (n === 1) answer.push([src, dst]);
else {
hanoi(n - 1, src, mid, dst);
answer.push([src, dst]);
hanoi(n - 1, mid, dst, src);
}
}
hanoi(n, 1, 3, 2);
return answer;
}
'์ฝ๋ฉํ ์คํธ > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Javascript] 3 x n ํ์ผ๋ง (12902) (0) | 2022.06.25 |
---|---|
[Javascript] ํ๋ณด๋์น ์ (12945) (0) | 2022.06.25 |
[Javascript] [3์ฐจ] ์์ถ (17684) (0) | 2022.06.24 |
[Javascript] ์์ ๋์งํ (12985) (0) | 2022.06.24 |
[Javascript] 3์ฐจ n์ง์ ๊ฒ์ (17687) (0) | 2022.06.24 |