https://www.acmicpc.net/problem/11729
** 참고자료 하노이의 탑 알고리즘
https://www.youtube.com/watch?v=FYCGV6F1NuY&t=378s
n개의 원판이 있을때, 맨 밑의 원판을 제외한 나머지 n - 1개의 원판들을
시작기둥에서 보조기둥으로 옮긴 뒤(1단계), 맨 밑의 원판을 목표기둥으로 옮긴다(2단계).
그리고 n - 1개의 원판들을 다시 보조기둥에서 목표기둥으로 옮긴다(3단계).
내 제출
n = int(input())
def hanoi(n, a, b, c): # 원반개수, 시작, 목표, 보조
if n == 1: # 탈출경로
print(a, c) # 시작 -> 목표
else:
hanoi(n - 1, a, c, b) # 원반-1, 시작, 보조, 목표 1단계
print(a, c) # 시작 -> 목표 2단계
hanoi(n - 1, b, a, c) # 원반-1, 보조, 목표, 시작 3단계
sum = 1
for i in range(n - 1):
sum = sum * 2 + 1 # 옮긴 횟수 = 2n+1
print(sum)
hanoi(n, 1, 2, 3)