[프로그래머스] 하노이의 탑

·2024년 1월 9일
0

알고리즘

목록 보기
14/23

문제

[프로그래머스] 하노이의 탑

풀이

재귀함수 문제다.

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

쉽지 않은 재귀 ,,,

0개의 댓글