알고리즘, 자료구조/알고리즘

하노이탑 문제

바로이순간 2013. 10. 5. 12:58

-출처 네이버 지식인의 질문중에서- 원소스는 구하지 못했습니다.


미련한 사람들이 원판을 무작위로 옮기려다 결국 실패하고 시간만 흘러갔습니다.

바라문교의 1대 현자가 나타나자 원판을 옮기는 데에는 규칙이 있음을 발견했습니다. 

하지만 1대 현자는 원판을 하나 옮기는데 1초가 걸린다고 가정하더라도 기둥이 3개인 

하노이탑의 원판 64개를 모두 옮기는 데에는 대략 (                )년이 걸린다는 것을 

추측은 해냈지만 그 원판들을 모두 옮기지는 못하고 죽었습니다.


그 후 2대 현자가 나타났습니다. 그는 원판을 더 빨리 옮기기 위해 신체와 정신을 수련

하기로 했습니다. 그 결과 1초에 원판을 1000개씩 옮길 수 있는 염력이 생겨났습니다. 

그러나 시간은 겨우 (           )로 줄일 뿐이었습니다. 2대 현자는 인간 몸의 한계를 느끼고 

고생만 하다 죽었습니다.

 

3대 현자가 나타났습니다. 그는 신을 직접 만나기 위해 영성훈련을 했고 그 결과 신을 만났습니다.

“신이시여! 우리에게 자비를 베푸소서. 이 원판의 개수는 너무 많으니 당신을 갈망하는 

중생들을 위해 원판을 줄이는 것이 가능할지요?”

신은 다음과 같이 말하면서 그 제안에 동의하였습니다.

“내가 중생들에게 자비를 베푸노라.”

3대 현자는 원판을 하나 줄일 때마다 시간이 (          )으로 줄어들지만 여전히 너무나 

많은 시간이 걸린다는 것을 알았습니다. 그래서 다시 말했습니다.

“우리의 고생함이 너무 심하니 원판을 10개, 아니 20개 줄여주시는 것도 가능한지요?”

신은 흔쾌히 승낙하였습니다.

“30개? 아니, 확 절반으로 줄여 32개라면?”

갑자기 욕심이 생기자 현자는 신으로부터 확답을 듣지 못했습니다.

“그렇다면 한 번만 더 용서하소서. 원판 64개의 개수는 그대로 두되 원판을 한꺼번에 

2개씩 옮길 수도 있도록 허락해 주시면 안될까요?”

신은 말없이 승낙하였지만 3대 현자가 살아있는 동안 그 문제를 해결하지는 못하고 

다른 전설이 되어 버렸습니다.

 

4대 현자가 나타났습니다. 그도 역시 신을 찾아갔습니다. 신이 먼저 물었습니다.

“내가 네게 무엇을 하여 주기를 원하느냐?”

4대 현자는 조용히 말하였습니다.

“신이시여, 원판의 개수를 줄이지도 말고 원판도 하나씩 원래대로 옮기겠습니다. 

다만 이곳 당신의 보좌 옆에 신의 자비를 담은 4번째 기둥을 하나만 더 만들어 두시고 

제가 이곳에 왕래하면서 그 기둥도 사용할 수 있게 해주소서.”

 

그리하여 하노이탑의 전설은 신의 보좌 옆에 만든 4번째 그 자비의 기둥을 사용하니 

금새 임무를 완수할 수 있을 것 같았습니다. 걸리는 시간은 대략 (              )정도 될 것으로 

추측했습니다. 신은 이 현자를 너무나 사랑하여 그를 땅으로 내려 보내지는 않고 

기둥만 하나 내려 보냈습니다.

 

그렇다면 그 원판들을 실제로 어떻게 옮기지? 어떤 원판을 어떤 기둥으로 옮겨야 

한단 말인가? 원판을 실제로 옮길 수만 있다면, 당신이 바로 바라문교의 새로운 현자가 됩니다.


'알고리즘, 자료구조 > 알고리즘' 카테고리의 다른 글

퀵정렬 알고리즘의 시간복잡도  (0) 2014.03.05
2d bin packing  (0) 2014.02.26
냉장고 문제  (0) 2013.06.02
array searching  (0) 2012.01.14
정수의 나눗셈을 곱셈으로 바꾸기  (0) 2011.12.20