재귀함수 문제다.
1. 초기 상태
2. n-1개를 sub으로 옮긴다.
3. start에 있는 원판 하나를 end로 옮긴다.
4. sub에 있는 n-1개의 원판을 end로 옮긴다.
hanoi(n, s, e, sub)
: n개의 원판을 sub이라는 보조 기둥을 이용해 s기둥에서 e기둥으로 옮긴다.
def solution(n):
def hanoi(n, s, e, sub):
if n == 1: # 원판이 하나일 때, 그냥 옮긴다 (3번 과정)
answer.append([s, e])
return
hanoi(n-1, s, sub, e) # 2번 과정
answer.append([s,e])
hanoi(n-1, sub, e, s) # 4번 과정
answer = []
hanoi(n, 1, 3, 2)
return answer
쉽지 않은 재귀 ,,,