코드

# 원반의 개수
n = int(input())

# a : 시작, b : 보조, c : 최종
def hanoi(n, a, b, c):
    # 원반이 하나면 a => c로 가면 끝
    if n == 1:
        print(a, c)
        return
    else:
        # 맨 밑의 원반을 제외한 n-1개의 원반을 보조 원반으로 옮김
        hanoi(n - 1, a, c, b)
        
        print(a, c)
        
        # 보조 원반에 있는 원반 중 -1개 만큼 최종 원반으로 옮김
        hanoi(n - 1, b, a, c)
        
print(2**n - 1)
hanoi(n, 1, 2, 3)

문제 해설

개인적으로 원리는 이해하지만 이것을 코드화 시키는 과정이 매우 힘들었다

그래서 “파이썬클래스”님의 영상을 참고하여 코드화하는 과정을 이해하였다

댓글남기기