방구석 컴퓨터/방구석 자료구조&알고리즘
하노이 탑
아래의 그림에서 A 타워에 놓인 N개의 원반을 규칙을 만족하며 모두 C로 이동시켜야 한다. 규칙 1. 최소한의 횟수만 움직여야 한다. 규칙 2. 더 큰 원반이 자신보다 작은 원반위로 올 수 없다. 규칙 3. 동시에 하나의 원반만 다른 기둥으로 옮길 수 있다. 위의 하노이 탑 문제는 보통 재귀로 풀게된다. 재귀로 풀기위해서는 보통 몇 번의 경우를 생각해보고 일정한 규칙을 반복하면 그것을 통해서 재귀적으로 함수를 호출하면 된다. 사실 나도 이 문제가 처음에 잘 이해가 되지않았지만 손으로 해보니깐 알게되었다. 헷갈린다면 원판이 3개가 있다고 가정하고 그림을 그려가면서 생각해보면 도움이 될 것이다. 정답 소스는 아래와 같다. #include void hanoi(int n, char start, char work..
2021. 1. 14. 13:57