알고리즘 문제
[백준] 11729번 하노이 탑 이동 순서
feelcoding
2020. 1. 12. 17:20
728x90
단계별로 풀어보기 재귀의 4단계 문제
11729번: 하노이 탑 이동 순서
세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 옮기려 한다. 한 번에 한 개의 원판만을 다른 탑으로 옮길 수 있다. 쌓아 놓은 원판은 항상 위의 것이 아래의 것보다 작아야 한다. 이 작업을 수행하는데 필요한 이동 순서를 출력하는 프로그램을 작성하라. 단, 이동 횟수는 최소가 되어야 한다. 아래 그림은 원판이 5
www.acmicpc.net
def hanoi(n, fr, temp, to):
if n == 1:
li.append((fr, to))
return
hanoi(n - 1, fr, to, temp)
li.append((fr, to))
hanoi(n - 1, temp, fr, to)
n = int(input())
li = []
hanoi(n, 1, 2, 3)
print(len(li))
for i in range(len(li)):
print(li[i][0], li[i][1])
728x90