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번 기둥으로 이동')