๋ฐฑ์ค (BOJ) 11729๋ฒ https://www.acmicpc.net/problem/11729
์ฌ์ฉ์ธ์ด : PYTHON
1.๋ฌธ์
์ธ ๊ฐ์ ์ฅ๋๊ฐ ์๊ณ ์ฒซ ๋ฒ์งธ ์ฅ๋์๋ ๋ฐ๊ฒฝ์ด ์๋ก ๋ค๋ฅธ n๊ฐ์ ์ํ์ด ์์ฌ ์๋ค. ๊ฐ ์ํ์ ๋ฐ๊ฒฝ์ด ํฐ ์์๋๋ก ์์ฌ์๋ค. ์ด์ ์๋์น๋ค์ด ๋ค์ ๊ท์น์ ๋ฐ๋ผ ์ฒซ ๋ฒ์งธ ์ฅ๋์์ ์ธ ๋ฒ์งธ ์ฅ๋๋ก ์ฎ๊ธฐ๋ ค ํ๋ค.
*ํ ๋ฒ์ ํ ๊ฐ์ ์ํ๋ง์ ๋ค๋ฅธ ํ์ผ๋ก ์ฎ๊ธธ ์ ์๋ค.
*์์ ๋์ ์ํ์ ํญ์ ์์ ๊ฒ์ด ์๋์ ๊ฒ๋ณด๋ค ์์์ผ ํ๋ค.
์ด ์์ ์ ์ํํ๋๋ฐ ํ์ํ ์ด๋ ์์๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ผ. ๋จ, ์ด๋ ํ์๋ ์ต์๊ฐ ๋์ด์ผ ํ๋ค.
2.ํ์ด
์ฌ๊ทํจ์๋ฅผ ์ฌ์ฉํด์ ํ์ด์ผ ํ๋ค. ์ด์ ํฌ์คํ ์์ ์ค๋ช ํ๋ ์์์ ๋งค๊ฐ๋ณ์์ธ ๊ฐ ์ฅ๋๋ฅผ ๋ช ์์ ๋งค๊ฐ๋ณ์ start, via end๋ก ํํํ๋ค.
base case : n์ด 1์ผ๊ฒฝ์ฐ, ์ถ๋ฐ์ง์์ ๋ชฉ์ ์ง๊น์ง ๋ฐ๋ก ํ ๋ฒ๋ง ์ด๋ํ๋ฉด ๋๋ค.
๊ทธ ์ธ์ ๊ฒฝ์ฐ
- ์ ์ผ ๋ง์ง๋ง ์ํ์ ์ ์ธํ ๋๋จธ์ง ์ํ๋ค์ ๊ฐ์ด๋ฐ ์ฅ๋๋ก ์ด๋ํ๋ค.
= hanoi(n-1,start,end,via)
- ๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง ์ํ์ ์ธ๋ฒ ์งธ ์ฅ๋๋ก ์ด๋์ํจ๋ค.
= print(start,end)
- ๋ง์ง๋ง์ผ๋ก ๊ฐ์ด๋ฐ ์ฅ๋๋ก ์ด๋๋์๋ ์ํ๋ค์ ์ธ ๋ฒ์งธ ์ฅ๋๋ก ์ด๋์ํค๋ฉด ๋๋ค.
= hanoi(n-1,via,start,end)
๊ทธ๋ฆผ์ผ๋ก ๊ทธ๋ฆฌ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค
3.์ฝ๋
def hanoi(n,start,via,end):
if n==1:
print(start,end)
return
else:
hanoi(n-1,start,end,via)
print(start,end)
hanoi(n-1,via,start,end)
return
n = int(input())
print(2**n-1)
hanoi(n,1,2,3)
'๐์ฝ๋ฉํ ์คํธ:CodingTest' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค 2108๋ฒ-ํ์ด์ฌ]ํต๊ณํ (0) | 2023.06.20 |
---|---|
[๋ฐฑ์ค 1181๋ฒ-ํ์ด์ฌ]๋จ์ด ์ ๋ ฌ (0) | 2023.06.19 |
[์๊ณ ๋ฆฌ์ฆ]์ต๋ ๊ณต์ฝ์(GCD) ์๊ณ ๋ฆฌ์ฆ - ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ (0) | 2023.06.19 |
[์๊ณ ๋ฆฌ์ฆ]๋ณํฉ ์ ๋ ฌ(Merge Sort) (0) | 2023.06.19 |
์นด์ดํ ์ ๋ ฌ(Counting Sort)Permalink (0) | 2023.06.19 |