2023년 1월 30일
Python
def move_disk(disk_num, start_peg, end_peg):
print("%d번 원판을 %d번 기둥에서 %d번 기둥으로 이동" % (disk_num, start_peg, end_peg))
return;
def hanoi(num_disks, start_peg, end_peg):
# 여기에 코드를 작성하세요
if num_disks == 0:
return
else:
temp_peg = 6 - end_peg - start_peg
hanoi(num_disks - 1, start_peg, temp_peg)
move_disk(num_disks, start_peg, end_peg)
hanoi(num_disks - 1, temp_peg, end_peg)
# 테스트 코드 (포함하여 제출해주세요)
hanoi(3, 1, 3)
# temp_peg = 2
# hanoi(2, 1, 2)
# temp_peg = 3
# hanoi(1, 1, 3) // print('1번 원판을 1번 기둥에서 3번 기둥으로 이동')
# move_disk(2, 1, 2) // print('2번 원판을 1번 기둥에서 2번 기둥으로 이동')
# hanoi(1, 3, 2) // print('1번 원판을 3번 기둥에서 2번 기둥으로 이동')
# move_disk(3, 1, 3) // print("3번 원판을 1번 기둥에서 3번 기둥으로 이동")
# hanoi(2, 2, 3)
# temp_peg = 1
# hanoi(1, 2, 1) // print('1번 원판을 2번 기둥에서 1번 기둥으로 이동')
# move_disk(2, 2, 3) // print('2번 원판을 2번 기둥에서 3번 기둥으로 이동')
# hanoi(1, 1, 3) // print('1번 원판에서 1번 기둥에서 3번 기둥으로 이동')