💡 원판 개수와, start middle end 4개의 매개변수를 가진 함수를 만든다
👉 원판이 1개일 경우 , 'start end' 를 출력하도록 한 후 함수를 빠져나온다
👉 1️⃣ n-1개를 중간 middle 에 다 옮긴다 ➡️ 재귀함수
👉 2️⃣ n번째 원판(마지막 젤 큰 원판)을 end 로 옮긴다
👉 3️⃣ middle 에 있는 n-1개의 원판들 역시 middle 에서 end 로 원판을 옮긴다. ➡️재귀함수
num = int(input())
def hanoi(n,start,mid,end) :
if n==1 :
print(f'{start} {end}')
return
hanoi(n-1,start, end, mid)
print(f'{start} {end}')
hanoi(n-1, mid, start, end)
print(2**num-1)
hanoi(num,1,2,3)