Algorithm(알고리즘)/백준
18_백준 _11729번 파이썬 하노이의 탑
반응형
악명 높은 하노이의 탑
문제
예전에 풀어봐서다시 복기하는 마음으로 코드를 짰다.
#재귀의 꽃 #재귀함수의 스태디셀러 문제
- 풀이
x = int(input())
move = []
def move_disk(disk_num, start, end):
move.append([start,end])
def hanoi(num_disks, start, end):
if num_disks == 0:
return
else:
other = 6 - start - end
# 1. 가장 큰 원판을 제외하고 나머지 원판들을 start에서 other로 이동
hanoi(num_disks - 1, start, other)
# 2. 이동경로 저장 : 가장 큰 원판을 start에서 end로 이동
move_disk(num_disks, start, end)
# 3. 나머지 원판들을 other에서 end로 이동
hanoi(num_disks - 1, other, end)
hanoi(x, 1, 3)
print(len(move))
for i in move:
print(i[0],i[1])
# 입력
3
# 출력
7
1 3
1 2
3 2
1 3
2 1
2 3
1 3
반응형
'Algorithm(알고리즘) > 백준' 카테고리의 다른 글
20_백준 _11651번 파이썬 좌표 정렬하기2 (0) | 2021.06.20 |
---|---|
19_백준 _1929_번 파이썬 소수 구하기 (0) | 2021.06.20 |
17_백준 _10250번 파이썬 ACM호텔 (0) | 2021.06.20 |
16_백준 _2609번 파이썬 최대공약수와 최소공배수 (0) | 2021.06.20 |
15_백준 _1037번 파이썬 약수 (0) | 2021.06.17 |
댓글