전형적인 재귀 문제로 '완료 상황'과 '진행 상황' 조건을 그대로 입력한다. 마법 같은 재귀...라고 생각하지만, 사실 재귀는 아직 내게 어렵다. 하노이의 탑 문제를 정리하면 다음과 같다.
def solution(n):
result = []
def hanoi(n, fr, by, to):
if (n==1):
result.append([fr, to])
return
hanoi(n-1, fr, to, by)
result.append([fr, to])
hanoi(n-1, by, fr, to)
hanoi(n, 1, 2, 3)
return result