자기 자신을 호출하는 함수를 말한다. 마치 반복문을 돌리듯 자기 자신을 끊임없이 부르다가 특정 조건이 되면 빠져나오는 함수. 스택(stack)이라는 자료구조를 쓴다.
자연수 N이 입력되면 재귀함수를 이용하여 1부터 N까지를 출력하는 프로그램을 작성하기.
1 2 3 순으로 출력이 되어야 한다.
function solution(n) {
function DFS(L) {
if (L === 0) return;
//L :level
else {
DFS(L - 1);
console.log(L);
}
}
DFS(n);
}
console.log(solution(3));
⭐️ 중요포인트 ) 재귀함수가 작동하는 원리
스택에 아래에서 위로 DFS(3) - DFS(2) - DFS(1) 순서로 쌓인다. 이후 실행되지 못했던 재귀함수 내의 console.log(L) 코드가 위에서 아래로 실행이 된다. 그렇기에 1 2 3 순으로 출력이 되는 것! 그렇기에 실행하고 싶은 코드를 놓는 위치 유의할 것 ⭐️
10진수 N이 입력되면 2진수로 변환하여 출력하는 프로그램을 작성하기. 단 재귀함수를 이용 해서 출력해야 한다.
function solution(n) {
let answer = "";
function DFS(n) {
if (n === 0) return;
DFS(parseInt(n / 2));
answer +=n % 2;
}
DFS(n);
return answer;
}
console.log(solution(11)); //1011
스택 내에 함수가 쌓이고 해당 함수가 다 실행되기도 전에 재귀함수로 인해 다시 함수가 실행이 되는 구조를 잘 이해해보자⭐️