S E P H ' S

[Python] 하노이의 탑 본문

Algorithm/Programmers

[Python] 하노이의 탑

yoseph0310 2021. 9. 4. 17:30
 

코딩테스트 연습 - 하노이의 탑

하노이 탑(Tower of Hanoi)은 퍼즐의 일종입니다. 세 개의 기둥과 이 기동에 꽂을 수 있는 크기가 다양한 원판들이 있고, 퍼즐을 시작하기 전에는 한 기둥에 원판들이 작은 것이 위에 있도록 순서대

programmers.co.kr

풀이

1. 세 개의 기둥을 각각 From, To, Sub로 생각.

2. 원반 하나를 옮기는 것을 반복. => 재귀

3. F : 1 / T : 3 / S : 2

4. 옮겨야 하는 가장 맨 위의 원반 1->2, 2->3

 

 

def solution(n):
    def hanoi(n, F, T, S):
        if n == 1:
            answer.append([F, T])
            return
        hanoi(n - 1, F, S, T)
        answer.append([F, T])
        hanoi(n - 1, S, T, F)
    
    answer = []
    hanoi(n, 1, 3, 2)
    return answer

'Algorithm > Programmers' 카테고리의 다른 글

[Python] 줄 서는 방법  (2) 2021.09.07
[Python] 최고의 집합  (0) 2021.09.05
[Python] N-Queen  (0) 2021.09.04
[Python] 주식가격  (0) 2021.09.04
[Python] 구명보트  (0) 2021.09.01