[Algorithm] 하노이의 탑

하노이의 탑

  • 재귀 사용
def move_disk(disk_num, start_peg, end_peg):
    print("%d번 원판을 %d번 기둥에서 %d번 기둥으로 이동" % (disk_num, start_peg, end_peg))

def hanoi(num_disks, start_peg, end_peg):
    if num_disks == 0:
        return
    else :
        other_peg = 6 - start_peg - end_peg
    
        hanoi(num_disks - 1, start_peg, other_peg)
        
        move_disk(num_disks, start_peg, end_peg)
        
        hanoi(num_disks - 1, other_peg, end_peg)