https://www.acmicpc.net/problem/11729
#Solution
하노이의 탑을 직접 풀어보면 답은 금방 나온다. n개의 원판 디스크를 옮길 때는 먼저 n-1개의 원판을 중간에 놓고, 제일 큰 원판을 3으로 옮긴다. 이후 다시 n-1개의 원판을 2에서 3으로 옮긴다. 이를 식으로 써보면 다음과 같다.
def hanoi(disk, start, mid, end):
if disk == 1:
print(start, end)
else:
hanoi(disk - 1, start, end, mid)
print(start, end)
hanoi(disk - 1, mid, start, end)
total_disk = int(input())
total_mvmt = 0
for disk in range(total_disk):
total_mvmt = total_mvmt * 2
total_mvmt += 1
print(total_mvmt)
hanoi(total_disk, 1, 2, 3)
'Programming [Python] > 백준 알고리즘 솔루션' 카테고리의 다른 글
#88 백준 파이썬 [1427] 소트인사이드 (0) | 2019.09.08 |
---|---|
#87 백준 파이썬 [1018] 체스판 다시 칠하기 - 부르트포스 (0) | 2019.08.12 |
#85 백준 파이썬 [1436] 영화감독 숌 - 부르트포스 (0) | 2019.07.28 |
#84 백준 파이썬 [1003] 피보나치 함수 - 반복문 (0) | 2019.07.26 |
#83 백준 파이썬 [2798] 블랙잭 (0) | 2019.07.26 |