반응형
문제
https://www.acmicpc.net/problem/11729
친숙한 문제이다. 몇몇분들은 실제로 해봤을것이다.
재귀와도 잘 맞는 문제이다. 하지만 실제로 방법을 아는것과 구현하는 것은 조금 다를수
있다는걸 깨달았다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | def hanoi(n,start,mid,end): if n==1: print(start, end) else: #다음 원판을 옮기기 위해선 hanoi(n-1,start,end,mid) #이전완성단계 에서 print(start, end) #제일아래에 들어갈 원판을 옮기고 hanoi(n-1,mid,start,end) #이전 단계에서 했던방식을 통해 제일 아래에 들어갈 원판 위에 다시쌓는다. n=int(input()) sum=1 for i in range(n-1): #총옮길 횟수는 따로 계산해줬다. sum=sum*2+1 #두번째 else문에서 보이듯이 이전단계보다 2배+1만큼 늘어나는 걸 볼수있다. print(sum) #총횟수 출력 hanoi(n,1,2,3) | cs |
반응형
'알고리즘(python) > 기본' 카테고리의 다른 글
[Python]동적계획법 백준 1003 (0) | 2020.01.07 |
---|---|
[Python]동적계획법 백준 2748 (0) | 2020.01.07 |
[Python]재귀 백준 2447 (0) | 2019.12.17 |
[Python]재귀 백준 10870 (0) | 2019.12.17 |
[Python]재귀 백준 10872 (0) | 2019.12.17 |
최근댓글