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)
에 스택 영역이 생성되며, 이 공간에 함수와 관계되는 지역변수,
매개변수, 복귀주소가 저장된다.이후 함수가 종료되면서 소멸한다.
반복문과 유사하게 동작하며, 반복문을 사용하는 모든 코드는 재귀 함수를 통해 구현할 수 있다.
(그 반대도 가능하다.)
함수 내에서 자신을 호출한 위치 이후의 명령문은 호출한 함수가 종료될 때 까지 수행되지 않고
대기하게된다. 따라서 종료 지점을 구현해야 무한루프를 방지할 수 있다.