본문 바로가기

재귀함수2

재귀함수를 통해 Tower of Hanoi (하노이의 탑)문제 해결해보자 재귀함수를 연습할 수 있는 좋은 예가 바로 하노이의 탑(Tower of Hanoi)문제이다. 하노이의 탑이란 전세계에서 인기 있는 수학 게임이다. source, extra, destination의 3개의 Peg가 있다. source에 각각 크기가 다른 n개의 디스크가 있어 이 3개의 peg중 어느 하나에나 삽입할 수 있다. 우리가 해야 할 일은 바로 source의 모든 peg를 destination으로 옮기는 것이다. 제한 사항은 첫째. 한 번에 하나의 디스크만 이동할 수 있다. 둘째. 더 큰 디스크를 작은 디스크 위에 올릴 수 없다. 해답을 말씀드리기 전에 먼저 아래는 연습할 수 있는 사이트에서 한번 시도해 보시기 바랍니다. 만만치 않을 것입니다. www.transum.org/Maths/Investig.. 2021. 2. 11.
재귀함수(Recursion Function) 재귀(Recursion)란 무엇인가? 함수를 스스로 호출하는 것으로 어떤 문제를 해결할 때 구조는 동일하지만 더 작은 경우를 해결함으로써 그 문제를 해결하는 방법이 재귀이다. 재귀는 어떤 경우에 사용하면 좋은가? 1) 주어진 문제가 구조는 비슷하고 더 작은 문제로 나뉘어 질 수 없는 경우 2) 중첩된 루프가 많은 경우 3) 중첩의 정도를 미리 알 수 없는 경우 재귀의 장점과 단점 장점: 프로그램의 가독성이 좋다. 단점: 호출마다 call stack이 새로 생성되어 메모리를 많이 사용한다. 호출 stack이 너무 커져서 메모리를 엄청나게 소비할 수 있다. 재귀함수를 만드려면 base case와 recursive case로 나누어야 한다. 재귀함수는 자기 자신을 호출하기 때문에 호출 stack이 커져 메모리.. 2021. 2. 11.