ํ๋ ธ์ดํ์ ์ปดํจํฐ ์๊ณ ๋ฆฌ์ฆ, ์ํ ๋ฌธ์ , ํผ์ฆ์์ ์ข ์ข ๋ฑ์ฅํ๋ ๋ฌธ์ ์ ๋๋ค. ์ด๊ฒ์ 3๊ฐ์ ๋ง๋์ ์ฌ๋ฌ ๊ฐ์ ์๋ฐ์ผ๋ก ๊ตฌ์ฑ๋๋๋ฐ ์๋ฐ์ ํฌ๊ธฐ ์์๋๋ก ์์ฌ ์์ผ๋ฉฐ, ๋ชฉํ๋ ํน์ ๊ท์น์ ๋ฐ๋ผ ์๋ฐ์ ํ๋์ ๋ง๋์์ ๋ค๋ฅธ ๋ง๋๋ก ์ฎ๊ธฐ๋ ๊ฒ์ ๋๋ค.
์ด๋ฒ ๊ธ์์๋ ํ๋ ธ์ดํ ๊ท์น์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
๋ชฉ์ฐจ
1. ํ๋ ธ์ดํ ๊ท์น
ํ๋ ธ์ดํ์ ๊ตฌ์ฑํ๋ ๊ธฐ๋ณธ ์์๋ ์ธ ๊ฐ์ ๋ง๋์ ํฌ๊ธฐ๊ฐ ๋ค๋ฅธ ์๋ฐ๋ค์ ๋๋ค. ์๋ฐ๋ค์ ์์ ์ง์ ์์ ํฌ๊ธฐ ์์ผ๋ก ์์ฌ ์์ผ๋ฉฐ, ์ด๋ฅผ ๋ค๋ฅธ ๋ง๋๋ก ์ฎ๊ฒจ์ผ ํฉ๋๋ค. ์ฎ๊ธธ ๋๋ ๋ค์ ๊ท์น์ ๋ฐ๋์ ๋ฐ๋ผ์ผ ํฉ๋๋ค:
- ํ ๋ฒ์ ํ๋์ ์๋ฐ๋ง ์ด๋ ๊ฐ๋ฅํ๋ค.
- ์์ ์๋ฐ ์์ ํฐ ์๋ฐ์ ์ฌ๋ฆด ์ ์๋ค.
- ์ต์ํ์ ์ด๋ ํ์๋ก ์๋ฐ์ ๋ชจ๋ ์ฎ๊ฒจ์ผ ํ๋ค.
์๋ฐ์ด ํ๋๋ผ๋ฉด ๊ฐ๋จํ ์ฎ๊ธธ ์ ์์ง๋ง, ๋ ๊ฐ ์ด์์ผ ๊ฒฝ์ฐ ๋ณด์กฐ ๊ธฐ๋ฅ์ ํ์ฉํด ๊ท์น์ ์ค์ํ๋ฉด์ ์ฎ๊ฒจ์ผ ํ๋ฏ๋ก ๋ณต์ก์ฑ์ด ์ฆ๊ฐํฉ๋๋ค.
2. ์ต์ ์ด๋ ํ์์ ์ ํ์
ํ๋ ธ์ดํ์ ์ต์ ์ด๋ ํ์๋ ์ํ์ ๊ท์น์ ๋ฐ๋ผ ๊ฒฐ์ ๋ฉ๋๋ค. ์๋ฐ์ ์๋ฅผ \( n \)์ด๋ผ ํ ๋, ์ต์ ์ด๋ ํ์๋ ๋ค์๊ณผ ๊ฐ์ด ๊ณ์ฐ๋ฉ๋๋ค:
\[ T(n) = 2^n - 1 \]
์ด๋ฅผ ์ ํ์์ผ๋ก ํํํ๋ฉด,
\[ T(n) = 2T(n-1) + 1 \]
๊ฐ ๋ฉ๋๋ค. ์ด ์ ํ์์ ๋ค์๊ณผ ๊ฐ์ ์๋ฆฌ์ ๊ธฐ๋ฐํฉ๋๋ค:
- ( n-1 )๊ฐ์ ์๋ฐ์ ์์ ๋ง๋์์ ๋ณด์กฐ ๋ง๋๋ก ์ฎ๊ธด๋ค.
- ๊ฐ์ฅ ํฐ ์๋ฐ ํ๋๋ฅผ ๋ชฉ์ ๋ง๋๋ก ์ฎ๊ธด๋ค.
- ๋ค์ ( n-1 )๊ฐ์ ์๋ฐ์ ๋ณด์กฐ ๋ง๋์์ ๋ชฉ์ ๋ง๋๋ก ์ฎ๊ธด๋ค.
์๋ฅผ ๋ค์ด, ์๋ฐ์ด 3๊ฐ์ผ ๊ฒฝ์ฐ ์ด๋ ํ์๋ \( 2^3 - 1 = 7 \)ํ์ ๋๋ค.
3. ํ๋ ธ์ดํ ํ์ด ๋ฐฉ๋ฒ
ํ๋ ธ์ดํ ๋ฌธ์ ๋ ์ฌ๊ท ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ํด๊ฒฐํ ์ ์์ต๋๋ค. ์๋ฐ์ ๊ฐ์์ ๋ง๋์ ์ํ๋ฅผ ๋ฐ๋ณต์ ์ผ๋ก ์ถ์ ํ๋ฉฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ์์ ๋๋ค. ๊ฐ๋จํ ํ์ด์ฌ ์ฝ๋ ์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
def hanoi(n, start, destination, via):
if n == 1:
print(f"{start}์์ {destination}์ผ๋ก ์๋ฐ ์ด๋")
else:
hanoi(n-1, start, via, destination)
print(f"{start}์์ {destination}์ผ๋ก ์๋ฐ ์ด๋")
hanoi(n-1, via, destination, start)
# ์์ ์คํ
hanoi(3, 'A', 'C', 'B')
์ด ์ฝ๋๋ ์๋ฐ์ ์ด๋ํ๋ ๊ณผ์ ์ ์ถ๋ ฅํ๋ฉฐ, ๋จ๊ณ๋ณ ์ด๋์ ํ์ธํ ์ ์์ต๋๋ค.
์ค์ ๋ก 3๊ฐ์ ์๋ฐ์ ์ฎ๊ธฐ๋ ค๋ฉด 7๋ฒ์ ์ด๋์ด ํ์ํฉ๋๋ค.
4. ํ๋ ธ์ดํ๊ณผ ๊ด๋ จ๋ ์ ์ค
ํ๋ ธ์ดํ์๋ ํฅ๋ฏธ๋ก์ด ์ ์ค์ด ์ ํด์ง๋๋ค. ์ธ๋์ ํ ์ฌ์์์ ์ ์ด 64๊ฐ์ ๊ธ์ผ๋ก ๋ ์๋ฐ์ 3๊ฐ์ ๋ค์ด์๋ชฌ๋ ๋ง๋์ ์์ ๋์๊ณ , ์น๋ ค๋ค์ ๋ฐค๋ฎ์์ด ์๋ฐ์ ์ด๋ํ๋๋ก ๋ช ๋ น๋ฐ์์ต๋๋ค. ์๋ฐ์ด ๋ชจ๋ ์ด๋๋๋ฉด ์ธ์์ด ๋๋๋ค๋ ์ ์ค์ ๋๋ค. ๊ณ์ฐ์ ๋ฐ๋ฅด๋ฉด 64๊ฐ์ ์๋ฐ์ ์ด๋ํ๋ ๋ฐ \( 2^{64} - 1 \)ํ๊ฐ ํ์ํ๋ฉฐ, ์ด๋ ์ฝ 5์ฒ์ต ๋ ์ ํด๋นํฉ๋๋ค. ๋ฐ๋ผ์, ์ด ์ ์ค์ ์ธ์์ ์ข ๋ง์ ๊ดํ ํฅ๋ฏธ๋ก์ด ์์ ๋ก ์ฌ๊ฒจ์ง๋๋ค.
๋๋ ์
ํ๋ ธ์ดํ์ ์ค์ ๋ก ํ์ด๋ณด๋ ๊ณผ์ ์ ๋ ผ๋ฆฌ์ ์ฌ๊ณ ์ ๋ฌธ์ ํด๊ฒฐ ๋ฅ๋ ฅ์ ํค์ฐ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ์์ ์๋ฐ๋ถํฐ ์์ํด ์ ์ฐจ ์๋ฐ ์๋ฅผ ๋๋ฆฌ๋ฉฐ ๊ท์น์ ์์งํ๋ค ๋ณด๋ฉด, ์ฌ๊ท์ ์ฌ๊ณ ๋ฐฉ์์ด ์์ฐ์ค๋ฝ๊ฒ ์ตํ์ง๋๋ค. ํนํ, ํ๋ก๊ทธ๋๋ฐ์์ ์ฌ๊ทํจ์์ ์ดํด๋ฅผ ๋๋ ๋ํ์ ์ธ ์์ ์ด๊ธฐ๋ ํฉ๋๋ค.
์ด์์ผ๋ก ํ๋ ธ์ดํ ๊ท์น์ ๋ํด ์์๋ณด์์ต๋๋ค.
ํ๋ ธ์ดํ์ ๋จ์ํด ๋ณด์ด์ง๋ง, ์ํ์ ์๋ฆฌ์ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ๊ณ ๋ฅผ ๊ฒฐํฉํ ํฅ๋ฏธ๋ก์ด ํผ์ฆ์ ๋๋ค. ์ด๋ฅผ ํตํด ์ ํ์, ์ฌ๊ท ์๊ณ ๋ฆฌ์ฆ, ๋ ผ๋ฆฌ์ ์ฌ๊ณ ๋ฅผ ๋ฐฐ์ธ ์ ์์ผ๋ฉฐ, ์ญ์ฌ์ ์ ์ค๊น์ง ๋ง๋ถ์ฌ์ ธ ๋์ฑ ๋งค๋ ฅ์ ์ ๋๋ค.
'์ํ์ ๋ณด > ๊ต์ก์ ๋ณด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์คํ๊ต ๋ด์ ์ฐ์ถ๋ฐฉ๋ฒ ์์๋ณด์ (0) | 2025.02.15 |
---|---|
์ ์กฐ์ ํํ์ฑ ์ด ์ฃผ๋ ๊ตํ (0) | 2025.02.14 |
์ด๋ฑํ์ ํ๊ท ํค ๋ชธ๋ฌด๊ฒ ์์๋ณด์ (0) | 2025.02.13 |
์์ฃผ์จ ๊ตฌํ๋ ๊ณต์ ์ฝ๊ฒ ์ดํดํ๊ธฐ (0) | 2025.02.13 |
2025 ์ ๊ตญ ์ ๋ฌธ๋ํ๊ต ์์ TOP20 (1) | 2025.02.12 |