재귀함수와 완전탐색(깊이우선탐색, DFS)-재귀함수와 스택프레임

Min·2021년 2월 22일
0

CodeKata

목록 보기
26/27
post-thumbnail

문제

자연수 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);
profile
slowly but surely

0개의 댓글