[Java알고리즘] 7-1. 재귀함수(스택프레임)

🌼 Problem


🍔 Solution 1 : 1부터 출력

import java.util.Scanner;

public class 재귀함수 {

    // 방법 1 : 1부터 출력
    public static void Solution(int index, int input){

        if(index == input){
            System.out.println(index);
        }else{
            System.out.println(index);
            Solution(index+1, input);
        }
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int input = sc.nextInt();
        Solution(1,input);
    }
}

[결과]


🍔 Solution 2 : n부터 출력

import java.util.Scanner;

public class 재귀함수 {

    // 방법 2: n부터 출력
   public static void Solution(int n){
        if(n==1){
            System.out.println(n);
        }else{
            System.out.println(n);
            Solution(n-1);
        }
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int input = sc.nextInt();
        Solution(input);
    }
}

[결과]


🍪 강사 Solution : Solution(n-1)코드를 올리면, 1부터 출력? (스택프레임)

import java.util.Scanner;

public class 재귀함수 {

    // 방법 3: 1부터 출력
    public static void Solution(int n){
        if(n==0) return;
        else{
            Solution(n-1);	// backtracking 방식
            System.out.print(n + " ");
        }
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int input = sc.nextInt();
        Solution(input);
    }
}

[결과]

좋은 웹페이지 즐겨찾기