Algorithm Problems
[백준][Python] 11729번 하노이탑 이동 순서 - 재귀(하노이탑)
WakaraNai
2021. 8. 31. 13:22
728x90
반응형
https://www.acmicpc.net/problem/11729
11729번: 하노이 탑 이동 순서
세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로
www.acmicpc.net
Python
import sys
n = int(sys.stdin.readline().rstrip())
ans = []
def hanoi(start,thor,dest,n):
global ans
if n <= 0:
return
#1 -> 3 -> 2
hanoi(start, dest, thor, n-1)
ans.append(str(start)+" "+str(dest))
#2 -> 1 -> 3
hanoi(thor, start, dest, n-1)
hanoi(1,2,3,n)
print(len(ans))
print("\n".join(ans))
정리본
import sys
n = int(sys.stdin.readline().rstrip())
ans = []
def hanoi(start,dest,n):
global ans
if n <= 0:
return
hanoi(start, 6-(start+dest), n-1)
ans.append(str(start)+" "+str(dest))
hanoi(6-(start+dest),dest, n-1)
hanoi(1,3,n)
print(len(ans))
print("\n".join(ans))
728x90
반응형