개발/algorithm
[프로그래머스] [level3] 하노이의 탑 - python
zzi_on2
2022. 4. 28. 17:25
문제 링크
https://programmers.co.kr/learn/courses/30/lessons/12946
코딩테스트 연습 - 하노이의 탑
하노이 탑(Tower of Hanoi)은 퍼즐의 일종입니다. 세 개의 기둥과 이 기동에 꽂을 수 있는 크기가 다양한 원판들이 있고, 퍼즐을 시작하기 전에는 한 기둥에 원판들이 작은 것이 위에 있도록 순서대
programmers.co.kr
풀이
재귀 함수 문제
1. a에 있는 n-1 개의 원반을 c를 거쳐 b로 옮긴다.
2. a에 남은 가장 아래 있는 원반을 c로 옮긴다.
3. b로 옮겼던 n-1 개의 원반을 a를 거쳐 c로 옮긴다.
위 과정을 다 옮길 때까지 반복
answer = []
def hanoi(n, f, to, sub):
if n == 1 :
answer.append((f, to))
return
# 1번 과정
hanoi(n-1, f, sub, to)
# 2번 과정
answer.append((f,to))
# 3번 과정
hanoi(n-1, sub, to, f)
def solution(n):
hanoi(n, 1, 3, 2)
return answer