자연수 N이 입력되면 재귀함수를 이용하여 1부터 N까지를 출력하는 프로그램을 작성하세요.
첫 번째 줄은 정수 N(3<=N<=10)이 입력된다.
첫째 줄에 출력한다.
3
1 2 3
#1의 DFS()가 실행될 때
스택에 매개변수(L===3), 지역변수, 복귀 주소(#3)가 들어간다.
ex) 스택프레임 : DFS(3)
#2 DFS()가 실행될 때
#3의 DFS()가 실행되며 #2의 DFS()가 실행되며
복귀주소는 #3이 된다.
ex) 스택프레임 : DFS(2)-매개변수 L===2 -> DFS(3)-매개변수 L===3
...
ex) 스택프레임이 DFS(0)이 될때 리턴이 되며 #2의 DFS()가 끝나고
쌓여있던 복귀주소(#3)를 따라간다.
DFS(1) -> DFS(2) -> DFS(3)
function solution(n){
function DFS(L) { // #2
if (L === 0) return;
else {
console.log(L) // 3 2 1
DFS(L-1) // #3 : 복귀주소
console.log(L) // 1 2 3
}
}
DFS(n); // #1
}
solution(3);