Baekjoon Online Judge

[python]1914.하노이 탑

kickerLit 2021. 2. 11. 21:55

재귀함수를 사용하는 문제이다. 이 문제는 컴퓨터 과학 분야에서 매우 중요한 문제이니 꼭 숙지해야한다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def hanoi(n, from_pos=1, to_pos=3, aux_pos=2):
    if n == 1:
        print(from_pos, to_pos)
        return
    hanoi(n-1, from_pos, aux_pos, to_pos)
    print(from_pos, to_pos)
    hanoi(n-1, aux_pos, to_pos, from_pos)
 
n=int(input())
if n > 20:
    print(2**n-1)
else:
    print(2**n-1)
    hanoi(n)
 
cs

 

재귀함수라는 것이 처음에는 이해가 잘 가지 않고 머리속에서 혼란이 발생하여 어려움이 있었다. 그래서 재귀를 제대로 이해하는 것은 좀 시간이 걸릴 수 있다. 하지만 포기하지 않고 계속해서 코드를 리뷰하고 재귀 관련 문제를 풀다보면 어느새 이해를 하고 있는 나 자신을 볼 수 있을 것이다!

'Baekjoon Online Judge' 카테고리의 다른 글

[python]1182. 부분수열의 합  (0) 2021.04.29
[python]7568. 덩치  (2) 2021.04.29
[python]10814.나이순 정렬  (4) 2021.02.03
[python]6566.애너그램 그룹  (0) 2021.01.27
[python]9020.골드바흐의 추측  (2) 2021.01.21