Nagie's DevStory
[ALGORITHM] 15. 하노이의 탑 본문
728x90
하노이의 탑 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 하노이의 탑 하노이의 탑(Tower of Hanoi)은 퍼즐의 일종이다. 세 개의 기둥과 이 기둥에 꽂을 수 있는 크기가 다양한 원판들이 있고, 퍼즐을 시작하기 전에는 한 기
ko.wikipedia.org
재귀 알고리즘의 대표적인 예시 중 하나인 하노이의 탑 문제다.
하노이의 탑 문제에서 원판이 이동하는 횟수는 2^n - 1(메르센 넘버) 이기에 시간 복잡도는 O(2^n)으로 볼 수 있으며
원판의 수가 많아질수록 계산시간이 오래 걸린다.
void hanoi(int n, int from, int to, int by) {
if (n == 1) {
std::cout << from << "▶" << to << std::endl;
} else {
hanoi(n - 1, from, by, to);
std::cout << from << "▶" << to << std::endl;
hanoi(n - 1, by, to, from);
}
}
728x90
Comments