[문제풀이] 07-01. 재귀 함수

𝒄𝒉𝒂𝒏𝒎𝒊𝒏·2023년 11월 5일
0

인프런, 자바(Java) 알고리즘 문제풀이

Recursive, Tree, Graph - 0701. 재귀 함수


🗒️ 문제


🎈 나의 풀이

	 private static void DFS(int n) {
        if(n==0) return;
        else {
            System.out.print(n + " ");
            DFS(n-1);
        }
    }
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        DFS(sc.nextInt());
    }


🖍️ 강의 풀이

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

	public void solution(int n){
		DFS(n);
	}
	public static void main(String[] args){
		Main T = new Main();
		T.solution(3);
		//System.out.println(T.solution(3));
	}	


💬 짚어가기

재귀 함수(Recursive)는 자기 자신을 호출하는 함수를 의미한다. 함수가 호출될 때 마다
스택 프레임(Stack Frame)에 스택 영역이 생성되며, 이 공간에 함수와 관계되는 지역변수,
매개변수, 복귀주소가 저장된다.이후 함수가 종료되면서 소멸한다.

반복문과 유사하게 동작하며, 반복문을 사용하는 모든 코드는 재귀 함수를 통해 구현할 수 있다.
(그 반대도 가능하다.)

함수 내에서 자신을 호출한 위치 이후의 명령문은 호출한 함수가 종료될 때 까지 수행되지 않고
대기하게된다. 따라서 종료 지점을 구현해야 무한루프를 방지할 수 있다.

profile
𝑶𝒏𝒆 𝒅𝒂𝒚 𝒐𝒓 𝒅𝒂𝒚 𝒐𝒏𝒆.

0개의 댓글