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
'알고리즘 문제' 카테고리의 다른 글
[백준] 1149번 RGB 거리 (0) | 2020.01.12 |
---|---|
[백준] 9461번 파도반수열 (0) | 2020.01.12 |
[백준] 2447번 별 찍기 - 10 (0) | 2020.01.12 |
[백준] 10870번 피보나치 수5 (0) | 2020.01.12 |
[백준] 10872번 팩토리얼 (0) | 2020.01.12 |