프로그래밍/알고리즘
[C / JAVA] 하노이탑 알고리즘 구현하기
하노이탑은 재귀호출을 이용한 가장 대표적인 예입니다. 이렇게 세개의 기둥이 있고 두가지의 조건을 만족시키면서 다른 기둥으로 원판을 옮기는 게임입니다.1. 한 번에 하나의 원판만 옮길 수 있다.2. 큰 원판이 작은 원판 위에 올 수 없다. n개의 원판이 있으면 2n -1의 이동으로 원판을 모두 옮길 수 있습니다. 알고리즘- 기둥1에 있는 n개의 원판을 기둥2를 이용하여 기둥3으로 옮기는 알고리즘(편의상 기둥 3개를 기둥1, 기둥2, 기둥3이라고 하겠습니다) 1. 기둥1에서 n-1개의 원판을 기둥3를 이용하여 기둥2으로 옮긴다.2. 기둥1에서 남은1개의 원판을 기둥3으로 옮긴다.3. 기둥2에서 n-1개의 원판을 기둥1을 이용하여 기둥3으로 옮긴다. 이걸 이제 코드상에서 구현을 해보도록 하죠.저 알고리즘을 그..
2016. 12. 23. 16:42
최근댓글