본문 바로가기
알고리즘 이전/재귀, DFS, BFS, Tree, Graph

재귀함수(스택 프레임)

by hoshi03 2023. 8. 14.

n을 입력하면 1부터 n까지 출력해보자

반복문으로 스택에 차곡차곡 쌓아서 출력한다

 

함수 내부에 if, else로 리턴을 언제할지 잘 정의해두자 먼저 print로 출력하면 3 2 1 순서로 나오고

먼저 재귀를 돌면 3 2 1 0 까지 갓다가 0 리턴 1 리턴 2리턴 3 리턴 하면서 1 2 3 출력한다

if (n == 0) return;
else {
	dfs(n-1);
	System.out.print(n + " ");
}

 

import java.util.*;

class Main {
    public void dfs(int n){
        if (n == 0) return;
        else {
            dfs(n-1);
            System.out.print(n + " ");
        }
    }

    public static void main(String[] args) {
            Main T = new Main();
            Scanner in = new Scanner(System.in);
            int n = in.nextInt();
            T.dfs(n);
    }
}

 

'알고리즘 이전 > 재귀, DFS, BFS, Tree, Graph' 카테고리의 다른 글

부분집합 구하기(DFS)  (0) 2023.08.15
이진트리순회(DFS)  (0) 2023.08.15
피보나치 수열  (0) 2023.08.14
팩토리얼  (0) 2023.08.14
이진수 출력  (0) 2023.08.14