본문 바로가기

백준 문제풀이

11729번: 하노이 탑 이동 순서 / silver 1 / 재귀

https://www.acmicpc.net/problem/11729

 

11729번: 하노이 탑 이동 순서

세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로

www.acmicpc.net

'''
11729번: 하노이 탑 이동 순서 / silver 1 / 재귀
'''


def hanoi(n, start, end):
    if n == 1:
        print(start, end)
    else:
        mid = 6 - start - end
        hanoi(n - 1, start, mid)
        print(start, end)
        hanoi(n - 1, mid, end)


n = int(input())
print(2**n - 1)
hanoi(n, 1, 3)

 

하노이탑 최소 횟수 = 2의 n 승 -1

 

재귀 함수 활용 - 어떻게 움직이는지 재귀 따라가 보기