본문 바로가기

BOJ 알고리즘 (T아카데미)

11729번: 하노이탑 (구현, 재귀) - Tacademy

www.acmicpc.net/problem/11729

 

11729번: 하노이 탑 이동 순서

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

www.acmicpc.net

# 하노이탑
# https://www.acmicpc.net/problem/11729 (재귀)

def hanoi(n, from_p, to_p):
    if n == 1:
        return print(f"{from_p} {to_p}")

    aux_p = 6 - from_p - to_p
    hanoi(n - 1, from_p, aux_p)
    print(f"{from_p} {to_p}")
    hanoi(n - 1, aux_p, to_p)


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