본문 바로가기
Algorithm/알고리즘 문제풀이

백준 11729 파이썬 - 하노이 탑 이동 순서

by devraphy 2021. 8. 17.

1. 문제 링크

https://www.acmicpc.net/problem/11729

 

11729번: 하노이 탑 이동 순서

세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로

www.acmicpc.net


2. 나는 어떻게 생각했는가? 

- 문제도 이해했고, 손으로 직접 그려가면서 풀이도 해보았다.

- 그러나 규칙성을 찾고, 규칙을 코드로 구현하는 능력이 많이 부족하다는 것을 다시한번 깨닫게 하였다.

- 사실 해답코드를 읽고도, 저런 규칙성으로 이 문제가 풀린다는 것이 완벽하게 이해가 가지 않는다. 


3. 정답 코드

n = int(input())
def hanoi(n, start, other, to): #start(시작기둥), to(목표기둥), other(남은기둥)
    if n == 1:
        print(start, to)
    else:
        hanoi(n - 1, start, to, other)
        print(start, to)
        hanoi(n - 1, other, start, to)
sum = 1
for i in range(n - 1):
    sum = sum * 2 + 1
print(sum)
hanoi(n, 1, 2, 3)

 

댓글