하노이의 탑은 단순한 퍼즐처럼 보이지만, 그 안에는 수학적 공식과 알고리즘의 핵심 원리가 정교하게 담겨 있습니다.
규칙은 간단하지만 해결 과정은 논리적 사고를 요구하며, 최소 이동 횟수 또한 명확한 수식으로 설명되는데요.
처음 접하는 분들도 흐름만 따라가면 자연스럽게 원리를 익힐 수 있습니다.
게임 규칙부터 이동 공식, 그리고 그 속에 숨겨진 패턴까지 이 글 하나로 하노이의 탑의 모든 것을 쉽게 이해할 수 있도록 정리해 드립니다.

하노이의 탑이란 무엇인가

출처:교보문고
하노이의 탑(Tower of Hanoi)은 1883년 프랑스 수학자 에두아르 뤼카(Édouard Lucas)가 고안한 고전 퍼즐입니다.
세 개의 기둥과 크기가 서로 다른 원반들로 구성되어 있는데요.
처음에는 모든 원반이 하나의 기둥에 크기 순서대로 쌓여 있습니다.
게임의 목표는 이 원반 전체를 다른 기둥으로 그대로 옮기는 것인데요.
수학적으로도 흥미롭지만, 오늘날 하노이의 탑은 컴퓨터 과학에서 재귀 알고리즘을 가르치는 대표적인 예제로 활용되고 있습니다.
프로그래밍을 처음 배우는 이들이 반드시 거쳐 가는 문제로 잘 알려져 있습니다.
하노이의 탑 유래와 전설
출처:수학귀신
위키백과에 따르면, 인도 베나레스 사원에는 세 개의 다이아몬드 바늘이 있다는 전설이 전해집니다.
그중 하나에는 64개의 순금 원판이 쌓여 있다고 합니다.
승려들이 규칙에 따라 원판을 하나씩 옮기고 있으며, 이 작업이 끝나는 날 세상이 종말을 맞이한다는 이야기입니다.
이 전설이 하노이의 탑 게임의 배경이 되었습니다.
하노이탑 게임의 세 가지 핵심 규칙
하노이탑 게임을 플레이하기 위해서는 반드시 세 가지 규칙을 지켜야 합니다.
이 규칙을 어길 경우 유효한 풀이로 인정되지 않으므로, 처음부터 정확히 숙지해 두는 것이 중요합니다.
첫째, 원반은 반드시 한 번에 한 개씩만 옮길 수 있습니다.
둘째, 반드시 기둥의 맨 위에 있는 원반만 이동할 수 있습니다.
세 번째이자 가장 핵심적인 규칙은, 작은 원반 위에 큰 원반을 올릴 수 없다는 것입니다.
즉, 항상 위의 원반이 아래 원반보다 작은 상태를 유지해야 합니다.
원반 개수별 최소 이동 횟수 정리
규칙을 정확히 지키면서 최소 횟수로 이동하는 것이 하노이탑 게임의 핵심 과제입니다.
실제로 원반 수에 따른 최소 이동 횟수를 정리하면 다음과 같습니다.
- 원반 1개: 1회
- 원반 2개: 3회
- 원반 3개: 7회
- 원반 4개: 15회
- 원반 5개: 31회
- 원반 8개: 255회
보편적으로 게임에서 사용하는 원반 수는 8개이며, 이때 최소 이동 횟수는 255회입니다.
숫자를 보면 규칙성이 보입니다.
원반이 하나씩 늘 때마다 이전 횟수의 두 배에 1을 더한 값이 됩니다.
하노이의 탑 알고리즘 공식 – 2ⁿ-1
출처:jake lee
하노이의 탑을 수학적으로 표현하면 매우 간결합니다.
n개의 원반을 최소 이동 횟수로 옮기는 공식은 2ⁿ – 1입니다.
원반이 3개라면 2³ – 1 = 7회, 원반이 10개라면 2¹⁰ – 1 = 1023회가 됩니다.
이 값은 수학적으로 메르센 수(Mersenne number)라고 불립니다.
이 공식이 도출되는 과정은 점화식(recurrence relation)을 통해 설명할 수 있습니다.
n개의 원반을 옮기려면 먼저 위에 있는 n-1개의 원반을 보조 기둥으로 옮깁니다.
이 과정에는 T(n-1)회의 이동이 필요합니다.
그다음 가장 큰 원반을 목적지로 한 번 이동합니다.
이후 다시 n-1개의 원반을 목적지로 옮기며, 이때도 T(n-1)회의 이동이 필요합니다.
따라서 총 이동 횟수는 T(n) = 2 × T(n-1) + 1이 되며, 이를 풀면 2ⁿ – 1이라는 일반항이 나옵니다.
64개 원반의 현실적 의미
64개의 원반을 옮기는 데 필요한 이동 횟수는 2⁶⁴ – 1로, 약 1844경 6744조 회에 달합니다.
원반 하나를 1초에 하나씩 옮긴다고 가정해도 약 5849억 년이 소요되는 셈입니다.
이는 우주의 나이인 138억 년의 42배를 넘는 시간입니다.
단순한 게임 속에 이런 규모의 수가 담겨 있다는 점이 하노이의 탑이 지금까지도 회자되는 이유 중 하나입니다.
하노이탑 알고리즘의 재귀 구조 이해하기

하노이탑 알고리즘에서 핵심 개념은 재귀(Recursion)입니다.
재귀란 문제를 더 작은 동일한 구조의 문제로 분해하여 해결하는 방식인데요.
하노이의 탑이 재귀의 교과서적인 예제로 쓰이는 이유가 바로 이 구조 때문입니다.
n개의 원반을 A 기둥에서 C 기둥으로 옮기는 과정을 단계적으로 보면 다음과 같습니다.
먼저 n-1개의 원반을 보조 기둥(B)으로 옮깁니다.
그다음 가장 크고 무거운 마지막 원반을 목적지(C)로 이동합니다.
마지막으로 보조 기둥에 있던 n-1개의 원반을 다시 목적지(C)로 옮깁니다.
원반 3개 기준 이동 순서 예시
원반이 3개일 때의 이동 순서를 직접 따라가 보면 재귀 구조가 더 명확하게 와닿습니다.
A 기둥에서 C 기둥으로 옮기는 최소 이동 경로는 다음과 같습니다.
- 1번 원반: A → C
- 2번 원반: A → B
- 1번 원반: C → B
- 3번 원반: A → C
- 1번 원반: B → A
- 2번 원반: B → C
- 1번 원반: A → C
총 7번의 이동으로 완성됩니다.
공식 2³ – 1 = 7과 정확히 일치하는데요.
이 과정을 스스로 추적해 보면 하노이의 탑이 왜 재귀 구조를 가지는지 직관적으로 이해할 수 있습니다.
하노이탑 게임 시간 복잡도와 한계
하노이탑 알고리즘의 시간 복잡도는 O(2ⁿ)으로 표현됩니다.
입력값 n이 증가할수록 연산 횟수가 기하급수적으로 늘어나는 구조인데요.
원반이 30개만 되어도 이동 횟수는 약 10억 회를 초과합니다.
원반 하나를 1초에 옮긴다고 가정할 때 30층짜리 하노이의 탑을 완성하려면 약 34년이 걸린다는 계산이 나옵니다.
입력 크기가 커질수록 현실적으로 실행이 불가능해지는 한계가 있기 때문인데요.
하노이의 탑은 단순한 게임을 넘어 알고리즘 효율성과 계산 복잡도를 이해하는 데 중요한 사례가 됩니다.
분할 정복(Divide and Conquer) 전략의 구조를 가진 대표적인 알고리즘 문제이기도 합니다.
큰 문제를 작은 동일 구조의 문제로 나누어 해결한 뒤 다시 합치는 방식이 하노이의 탑 전체 풀이 과정과 정확히 일치하기 때문입니다.
하노이의 탑이 프로그래밍 학습에 쓰이는 이유
하노이탑 알고리즘은 재귀 함수를 연습하기에 가장 적합한 예제 중 하나로 꼽힙니다.
문제 구조 자체가 재귀의 작동 방식을 설명하는 과정과 동일하기 때문입니다.
코드로 구현했을 때 함수 자체는 짧지만, 그 안에서 일어나는 호출 과정은 원반 개수에 따라 기하급수적으로 깊어집니다.
이러한 특성 덕분에 알고리즘 초급 수업에서 재귀 입문 문제로 빠짐없이 등장합니다.
하노이의 탑 완벽 가이드 마무리
하노이의 탑은 세 가지 간단한 규칙과 2ⁿ-1이라는 공식만 이해하면 누구나 접근할 수 있는 퍼즐입니다.
그러나 원반 수가 늘어날수록 그 깊이는 무한히 확장되며, 수학과 알고리즘이 만나는 지점을 선명하게 보여 줍니다.
하노이탑 게임을 직접 플레이해 보거나, 재귀 코드를 손으로 구현해 보는 것이 이 개념을 체득하는 가장 빠른 방법입니다.
오늘 가까운 사람들과 함께 하노이 탑 게임을 한번 즐겨보시는건 어떨까요?









