์ฌ๋ ๋์ ๊ฐ์ด ํ๋ก๊ทธ๋๋จธ์ค์์ ๋ฌธ์ ๋ฅผ ํ๊ณ ์์๋ค. ์๋ฃ๊ตฌ์กฐ, ์๊ณ ๋ฆฌ์ฆ ๊ณ ๋์ kit๋ฅผ ์ด๋ ์ ๋ ํ์๊ธฐ ๋๋ฌธ์, ํน๋ณํ ๊ธฐ์ค์ ๋๊ณ ๋ฌธ์ ๋ฅผ ๊ณ ๋ฅด์ง ์๋๋ค. ๋ฌธ์ ๋ค์ ๋ณด๋ค๊ฐ ํ๋ ธ์ด์ ํ์ด๋ผ๋ ๋ฌธ์ ๊ฐ ๋์ ๋์๋ค. ์๋์ ์ฌ๊ท ํจ์๋ฅผ ์ด์ฉํ ํ์ด๋ก ์ ๋ช ํ์ง๋ง ์ค์ ๋ก ํ ๋ฒ๋ ํ์ด๋ณธ ๊ฒฝํ์ด ์์๋ค. ๊ทธ๋์ ํ๋ฒ ํ์ด๋ณด๊ธฐ๋ก ๊ฒฐ์ฌํ๋ค.
๊ทผ๋ฐ ์ด๊ฒ ์ฌ๊ฑธ. ์๊ฐ๋ณด๋ค ๋ด๊ฐ ์ฌ๊ท์ ๋ํ ๊ฐ๋ ์ด ๋ถ์กฑํ๋ค๋ ๊ฑธ ๋๋ผ๋ฉด์ ํธ๋ ์๊ฐ๊ณผ ์ดํดํ๋ ์๊ฐ์ด ๊ฑฐ์ 3์ผ์ ๊ฑธ๋ ธ๋ ๊ฒ ๊ฐ๋ค.
ํ๋ก๊ทธ๋๋จธ์ค์์ ๊ฐ์ ๋ ๋ฒจ์ด๋ผ๋ ๋์ด๋๋ ์ฒ์ฐจ๋ง๋ณ์ธ๋ฏํ๋ค. ๋น์ฅ์ ์นด์นด์ค ๊ธฐ์ถ๋ง ๋ณด๋๋ผ๋...(๊ธฐ์ค์ด ๋ญ๊น..)
์ด์ฐ ๋๋ ๊ฒจ์ฐ ์ดํดํด์ ๊ทธ ํ์ด๊ณผ์ ์ ๊ธฐ์ ํด๋ณผ ์๊ฐ์ด๋ค.
https://programmers.co.kr/learn/courses/30/lessons/12946
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ํ๋ ธ์ด์ ํ
ํ๋ ธ์ด ํ(Tower of Hanoi)์ ํผ์ฆ์ ์ผ์ข ์ ๋๋ค. ์ธ ๊ฐ์ ๊ธฐ๋ฅ๊ณผ ์ด ๊ธฐ๋์ ๊ฝ์ ์ ์๋ ํฌ๊ธฐ๊ฐ ๋ค์ํ ์ํ๋ค์ด ์๊ณ , ํผ์ฆ์ ์์ํ๊ธฐ ์ ์๋ ํ ๊ธฐ๋ฅ์ ์ํ๋ค์ด ์์ ๊ฒ์ด ์์ ์๋๋ก ์์๋
programmers.co.kr
๋ฌธ์ ์ค๋ช
ํ๋ ธ์ด ํ(Tower of Hanoi)์ ํผ์ฆ์ ์ผ์ข ์ ๋๋ค. ์ธ ๊ฐ์ ๊ธฐ๋ฅ๊ณผ ์ด ๊ธฐ๋์ ๊ฝ์ ์ ์๋ ํฌ๊ธฐ๊ฐ ๋ค์ํ ์ํ๋ค์ด ์๊ณ , ํผ์ฆ์ ์์ํ๊ธฐ ์ ์๋ ํ ๊ธฐ๋ฅ์ ์ํ๋ค์ด ์์ ๊ฒ์ด ์์ ์๋๋ก ์์๋๋ก ์์ฌ ์์ต๋๋ค. ๊ฒ์์ ๋ชฉ์ ์ ๋ค์ ๋ ๊ฐ์ง ์กฐ๊ฑด์ ๋ง์กฑ์ํค๋ฉด์, ํ ๊ธฐ๋ฅ์ ๊ฝํ ์ํ๋ค์ ๊ทธ ์์ ๊ทธ๋๋ก ๋ค๋ฅธ ๊ธฐ๋ฅ์ผ๋ก ์ฎ๊ฒจ์ ๋ค์ ์๋ ๊ฒ์ ๋๋ค.
- ํ ๋ฒ์ ํ๋์ ์ํ๋ง ์ฎ๊ธธ ์ ์์ต๋๋ค.
- ํฐ ์ํ์ด ์์ ์ํ ์์ ์์ด์๋ ์๋ฉ๋๋ค.
ํ๋ ธ์ด ํ์ ์ธ ๊ฐ์ ๊ธฐ๋ฅ์ ์ผ์ชฝ ๋ถํฐ 1๋ฒ, 2๋ฒ, 3๋ฒ์ด๋ผ๊ณ ํ๊ฒ ์ต๋๋ค. 1๋ฒ์๋ n๊ฐ์ ์ํ์ด ์๊ณ ์ด n๊ฐ์ ์ํ์ 3๋ฒ ์ํ์ผ๋ก ์ต์ ํ์๋ก ์ฎ๊ธฐ๋ ค๊ณ ํฉ๋๋ค.
1๋ฒ ๊ธฐ๋ฅ์ ์๋ ์ํ์ ๊ฐ์ n์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, n๊ฐ์ ์ํ์ 3๋ฒ ์ํ์ผ๋ก ์ต์๋ก ์ฎ๊ธฐ๋ ๋ฐฉ๋ฒ์ return ํ๋ solution๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ ์ฌํญ
- n์ 15์ดํ์ ์์ฐ์ ์ ๋๋ค.
ํ์ด ๊ณผ์
๋๋ต ์ด๋ฌํ ๋ฌธ์ ๋ค. ์ํ์ด ์ด๋ํ๋ ๊ฒฐ๊ณผ๋ฅผ 2์ฐจ์ ๋ฐฐ์ด๋ก ๋ฐํํ๋ผ๋ ๋ฌธ์ ๋ค.
๋ฌธ์ ๋ฅผ ๋ณด๊ณ ํ์ฐธ ์๊ฐํ๋ค. ๋ถ๋ช ์ฌ๊ท ๊ด๋ จ ๋ฌธ์ ๋ก ์ ๋ช ํ๊ธฐ ๋๋ฌธ์, ๋ฐ๋ณต๋๋ ์ฃผ๊ธฐ๊ฐ ์์ ๊ฒ์ด๋ผ ์๊ฐํ๋ค. ๊ทธ ๊ท์น์ ์ฐพ๋ ๊ฒ์ด ์ด ๋ฌธ์ ์ ํต์ฌ์ด๋ค.
๋ฌธ์ ์์ ์ฃผ์ด์ง ์์๋ n = 2 ์ผ ๋์ ์์์ด๋ค. ๊ทธ๋ผ n = 3 ์ผ ๋๋ ์๊ฐํด๋ณด์.
์ฐธ์กฐ : https://small-stap.tistory.com/73
[ํ๋ก๊ทธ๋๋จธ์ค] ํ๋ ธ์ด์ ํ Java ํ์ด
์ด ๊ธ์ ํผ์ ํ์ตํ ๋ด์ฉ์ ๋ฐํ์ผ๋ก ์์ฑ๋์์ต๋๋ค. ํ๋ฆฌ๊ฑฐ๋ ์๋ชป๋ ์ ๋ณด๊ฐ ์์ ์ ์์ต๋๋ค. ๋๊ธ๋ก ์๋ ค์ฃผ์๋ฉด ์์ ํ๋๋ก ํ๊ฒ ์ต๋๋ค. 1. ๋ฌธ์ ํ๋ ธ์ด ํ(Tower of Hanoi)์ ํผ์ฆ์ ์ผ์ข ์ ๋
small-stap.tistory.com
๊ทธ๋ฆผ์ ๋ค๋ฅธ ํฌ์คํ ์์ ์ ์ ๊ฐ์ ธ์๋ค.
์ํ์ด 2๊ฐ
์ํ์ด ๋๊ฐ์ผ ๋ ์ฒซ ๋ฒ์งธ ์ํ์ ๊ธฐ๋ฅ 2๋ก ๊ฐ ๋ค ๋ ๋ฒ์งธ ์ํ์ ๊ธฐ๋ฅ 3์ผ๋ก ๊ฐ๋ค. ๊ทธ ํ ๊ธฐ๋ฅ 2์ ์ฒซ ์ํ์ ๊ธฐ๋ฅ 3์ผ๋ก ๋ณด๋ธ๋ค. 1 -> 2 / 1 -> 3 / 2 -> 3
์ํ์ด 3๊ฐ
์ํ์ด ์ธ๊ฐ์ผ ๋ ์ํ 1 -> ๊ธฐ๋ฅ 3, ์ํ 2 -> ๊ธฐ๋ฅ 2, ์ํ 1 -> ๊ธฐ๋ฅ 2, ์ํ 3 -> ๊ธฐ๋ฅ 3, ์ํ 1 -> ๊ธฐ๋ฅ 1, ์ํ 2 -> ๊ธฐ๋ฅ 3, ์ํ 1 -> ๊ธฐ๋ฅ 3์ ๊ณผ์ ์ด๋ค.
1 -> 3 / 1 -> 2 / 3 -> 2 / 1 -> 3 / 2 -> 1 / 2 -> 3 / 1 -> 3 ์
์ค์ํ ๊ท์น์ ๋ง์ง๋ง ์ํ ์ ๋ชจ๋ ์ํ๋ค์ ๊ฒฝ์ ์ง๋ฅผ ๊ฑฐ์ณ ์ค๊ฐ ์ง์ญ์ ๋ชจ๋ ๋จธ๋ฌด๋ฅด๊ฒ ๋๊ณ , ๋ง์ง๋ง ์ํ์ ๊ฒฝ์ ์ง๋ก ๋ฐ๋ก ๊ฐ๋ค.
์ด๊ฑธ n๊ฐ์ ์ํ์ด๋ผ๊ณ ์๊ฐํ๋ค๋ฉด n-1๊ฐ์ ์ํ๋ค์ ๊ฐ์์ ๊ฒฝ์ ์ง๋ค์ ๊ฑฐ์ณ ์ค๊ฐ ์ง์ญ์ผ๋ก ์ฎ๊ธฐ๊ณ ๋ง์ง๋ง ์ํ์ ๋์ฐฉ์ง๋ก ์ฎ๊ธด ๋ค, ๋๋จธ์ง ์ํ๋ค์ ๊ฐ์์ ๊ฒฝ์ ์ง๋ฅผ ๊ฑฐ์ณ ๋์ฐฉ์ง๋ก ์ด๋์ํค๋ฉด ๋๋ค๋ ๋ป์ด๋ค.
์ด๊ฒ์ ์ฝ๋๋ก ๊ตฌํํด์ผ ํ๋ค. ์ฌ๊ท๋ฅผ ์ด๋ค์์ผ๋ก ์ด์ฉํ ์ ์์๊น?
์ด ๋ถ๋ถ์ ๋๋ฌด์ง ๋ ์ค๋ฅด์ง ์์ ์ฌ๋ฌ ํ์ด๋ค์ ๋ณด๊ณ ๋๋ง์ ํ์ด๋ฅผ ์ ๋ฆฝํ๋ค.
์ํ๋ค์ด ๊ธฐ๋ฅ์ ์ฎ๊ฒจ๊ฐ๋ ๋์์ ํ๋ ๋ฉ์๋๋ฅผ ์๋ก ์ ์ํ๋ค.
์ํ์ ๊ฐ์๊ฐ 1์ผ ๊ฒฝ์ฐ ๋ฐ๋ก 1 -> 3์ผ๋ก ๊ฐ๋ ๋ฐฐ์ด์ ๊ฐ์ ์ง์ด๋ฃ๊ณ ๋ฆฌํดํ๋ค.
์๋ ๊ฒฝ์ฐ 3๊ฐ์ง ๋จ๊ณ๋ก ๋๋์ด์ง๋ค.
์ฒซ์งธ, n-1 ๊ฐ์ ์ํ์ ๊ฒฝ์ ์ง์ญ์ผ๋ก ์ด๋์ํฌ ๊ฒ.
์ด ๊ฒฝ์ฐ๋ ์ฌ๊ท๋ฅผ ์ด์ฉํด ํ๋ผ๋ฏธํฐ์์ ๊ฒฝ์ ์ง๋ ๋ง์ง๋ง ๊ธฐ๋ฅ์ผ๋ก ๋๊ณ ์คํํ๋ค.
๋์งธ, ๊ฐ์ฅ ํฐ ๋ง์ง๋ง ์ํ์ ๋ง์ง๋ง ๊ธฐ๋ฅ์ผ๋ก ์ด๋์ํจ๋ค.
์ด ๊ฒฝ์ฐ๋ ๋ฐฐ์ด์ ๊ฐ์ ์ง์ ์ ์ผ๋ก ์ถ๊ฐํ๋ค.
์ ์งธ, ๊ฒฝ์ ์ง์ ์๋ n-1๊ฐ์ ์ํ์ ๋ง์ง๋ง ๊ธฐ๋ฅ์ผ๋ก ์ฎ๊ธฐ๊ธฐ ์ํด ๋ค์ ์ฌ๊ท ํธ์ถํ๋ค.
์ด ๊ฒฝ์ฐ๋ ์ฌ๊ท๋ฅผ ์ด์ฉํด ํ๋ผ๋ฏธํฐ์์ ๊ฒฝ์ ์ง๋ ์ค๊ฐ ์ง์ญ์ผ๋ก ๋๊ณ ์คํํ๋ค.
DFS๋ฅผ ์ด์ฉํ ํ์ด
์ฝ๋๋ก ํํํ์๋ฉด
์ด ๋ฌธ์ ๋ฅผ ํ๋ฉด์ ์ฌ๊ท ํธ์ถ์ ๋ํด ๊ฐ๋ ์ ์๋ชป ์ก๊ณ ์์๋ค๋ ์๊ฐ์ ํ๋ค. ์ฌ๊ท ํธ์ถ์ด ์ผ์ด๋๋ฉด ์๊ธฐ ์์ ์ ๋ฐ๋ก ํธ์ถํ๋ ๊ฒ์ด ๋ง์ง๋ง ๊ทธ๋งํผ ๋ฉ์๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ๋ ๋ ์์ฑ๋์ด ํ๊ณ ๋๋ ๊ฒ์ด๋ค. ๊ทธ ๊ฒฝ์ฐ๋ฅผ ์๊ฐํ์ง ๋ชปํ๊ณ ๋ฌธ์ ๋ฅผ ํ๋ค ๋ณด๋ ๋น์ฐํ ์ดํด๊ฐ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฐ ๊ฒ์ด๋ค. ์ฌ๊ท์ ๊ฐ๋ ์ ํ์คํ ์ดํดํ๊ณ 3์ผ ๋ด๋ด ์ณ๋ค๋ณด๋ ๊ฒจ์ฐ ์ดํด๊ฐ ๋์๋ค. ์๊ฐ์ง๋ ๋ชปํ ๋ฌธ์ ์๊ณ , ๊ฐ๋ ์ ์ข ๋ ์ ๋ค์ ธ๊ฐ์ผ๊ฒ ๋จ ์๊ฐ์ด ๋ค์๋ค.
'๐ Algorithm > ์ฝ๋ฉํ ์คํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Set & List] ์ฑ๋ฅ ์ฐจ์ด (0) | 2022.10.29 |
---|---|
2022.07.07 [Lv.2 ๊ดํธ ๋ณํ] (0) | 2022.07.07 |
2022.06.22 ใLv.2 Jadan Caseใ (0) | 2022.06.22 |
2022.06.22 ใLv.2 N-Queenใ (0) | 2022.06.22 |
2022.06.15 ใLv.2 ์คํ์ฑํ ๋ฐฉใ (0) | 2022.06.15 |