n=int(input())
def hanoi(num,start,mid,end):
if num==1:
print(start,end)
else:
hanoi(num-1,start,end,mid) #가장 아래에 있는 원판 제외 나머지 2로 이동(1->2)
print(start,end) #처음 장대에 남은 마지막 원판을 3으로(1->3)
hanoi(num-1,mid,start,end) #2번째 장대에 있는 다른 원판을 3으로(2->3)
print(2**n-1)
hanoi(n,1,2,3)
접근방법
코드
hanoi(num-1,start,end,mid)
로 n을 제외한 나머지를 시작위치에서 중간 위치인 mid로 이동시킨다.print(start,end)
으로 첫번째 장대에 남아있는 한개의 원판을 마지막으로 이동시킨다.hanoi(num-1,mid,start,end)
으로 두번째 장대에 있는 n-1 개의 원판을 마지막 장대로 이동시켜준다.이동 횟수는 좋은 포스팅을 발견해 해당 글을 참고했다. :)