[백준]하노이의 탑

2020. 6. 22. 23:531일 1 알고리즘

이번에는 하노이의 탑을 만들어봅니다.

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)

처음에는 함수를 만들어줍니다 다음 total_disk을 만들어 입력할 숫자를 적을수 있도록해주고  total_mvmt를 초기화해줍니다 다음 함수에있는 disk값을 가져오고 입력한 수만큼 for문을 돌려줍니다 증가할떄마다 total_mvmt를 2씩 곱해 주며 거기에 1씩 더 증가시켜줍니다 그후 출력해주고 함수로 넘어가 각각 움직인 횟수를 보여줍니다.

'1일 1 알고리즘' 카테고리의 다른 글

[백준]덩치  (0) 2020.06.25
[백준]블랙잭  (0) 2020.06.23
[백준]별찍기  (0) 2020.06.21
[백준] 피보나치 수 5  (0) 2020.06.21
[백준]팩토리얼  (0) 2020.06.21