백준 11729번 - 하노이 탑 (Python3)
코드
# 원반의 개수
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)
문제 해설
개인적으로 원리는 이해하지만 이것을 코드화 시키는 과정이 매우 힘들었다
그래서 “파이썬클래스”님의 영상을 참고하여 코드화하는 과정을 이해하였다
댓글남기기