[단계별로 풀어보기][python 3] 재귀 - 하노이 탑 이동 순서 (11729)
2022. 4. 30. 15:01ㆍ공부/알고리즘
11729번: 하노이 탑 이동 순서 (acmicpc.net)
11729번: 하노이 탑 이동 순서
세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로
www.acmicpc.net
방안 1
하노이의 탑을 실제로 시도해보면 다음과 같다.
이처럼 N개의 원판이 있으면 N-1개의 원판을 하노이의 방식대로 Auxiliary로 옮기고
Source의 원판을 Destination으로 옮긴 뒤 다시 N-1개의 원판을 Destination으로 옮긴다.
이 과정을 직접 해보면 원판의 개수 n에 따라 n**2-1번 움직이게 된다.
def hanoi(n, start, end):
if n ==1:
print(start, end)
return
hanoi(n-1, start, 6-start-end)
print(start, end)
hanoi(n-1, 6-start-end, end)
n = int(input())
k = n**2 - 1
print(k)
hanoi(n,1,3)
'공부 > 알고리즘' 카테고리의 다른 글
[단계별로 풀어보기][python 3] 정렬 알고리즘 (0) | 2022.04.30 |
---|---|
[단계별로 풀어보기][python 3] 브루트 포스 - 체스판 다시 칠하기 (1018) (0) | 2022.04.30 |
[단계별로 풀어보기][python 3] 재귀 - 별찍기 - 10 (2447) (0) | 2022.04.30 |
[단계별로 풀어보기][python 3] 기본 수학2 - 터렛 (1002) (0) | 2022.04.26 |
[단계별로 풀어보기] [python3] 기본 수학 2 - 베르트랑 공준 (4948) (0) | 2022.04.26 |