본문 바로가기
자료구조

하노이의 탑

by sleepycho 2024. 6. 9.

 

   '하노이의 탑’은 프랑스의 수학자 에두아르 뤼카가 1883년 소개한 문제이다.

 

이 문제는 작은 원반 위에 큰 원반을 올릴 수 없다는 규칙을 가지고 있다. 알고리즘으로는 재귀함수의 좋은 예제가 되기도 한다. 하노이의 탑 문제를 풀기 위해 필요한 정보는 원반의 개수 n, 출발지 막대 start, 경유지 막대 via, 도착지 막대 to이다. 함수로 정의하면 다음과 같다.

 

hanoi(N, start, via, to) = hanoi(N - 1, start, to, via) + move(N, start, to) + hanoi(N - 1, via, start, to)

 

여기서 move(N, A, C)는 원반 N을 출발지 막대 A에서 도착지 막대 C로 옮기는 동작을 나타낸다. 원반의 개수가 클수록 이동 횟수가 기하급수적으로 늘어나기 때문에 재귀함수를 통해 효율적으로 문제를 풀 수 있다.

 

   [여기서 잠깐!] 재귀함수란?

 

재귀함수는 함수가 자기 자신을 호출하는 프로그래밍 기법이다. 예를 들어, 하노이의 탑 문제에서 사용한 재귀함수는 원반을 작은 부분 문제로 나누어 해결할 수 있다. 이렇게 하면 코드를 더 간결하게 작성할 수 있고, 문제를 효율적으로 해결할 수 있다.

 

 

 

'자료구조' 카테고리의 다른 글

자료와 정보 [자료구조 정리①]  (0) 2024.06.18
원형큐 삽입/삭제  (0) 2024.06.09
C언어 스택 PUSH, POP 과정  (0) 2024.04.23
좋아~ 빠르게 (배열 선언하러) 가!  (0) 2024.04.23
자료형이란 무엇인가?  (0) 2024.04.23