[재귀함수] 재귀함수
by 개발하는지호
두 가지 출력 형태가 있는데, 우선 하나는 3, 2, 1 이 출력이 되고,
class Main {
public void DFS(int n) {
if(n == 0) return;
else {
System.out.print(n + " ");
DFS(n - 1);
}
}
public static void main(String[] args) {
Main T = new Main();
T.DFS(3);
}
}
이거는 1, 2, 3으로 출력이 된다.
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();
T.DFS(3);
}
}
이는 '스택프래임'을 따르기 때문인데, 실행을 하게 되면 DFS() 가 작동하는데 DFS 함수 안에 또 다른 DFS가 있어 또 다시 함수가 호출이 된다. 그 과정이 조건문에 의해 끝날 때 까지 진행이 되며, 호출 될때마다 스택에 쌓이게 된다.
조건에 의해 끝이 나면 스택의 구조로 인해 가장 나중에 들어온 것이 먼저 호출이 되면서 출력값을 나타낸다.
이는 향후 '백트래킹'이라는 개념을 공부하는데 필요한 개념이다!
'코딩테스트' 카테고리의 다른 글
[DFS] 5. 이진트리 순회 (0) | 2024.01.29 |
---|---|
[재귀함수] 2. 이진수 출력 (1) | 2024.01.26 |
[결정알고리즘] 10.마구간 정하기 (1) | 2024.01.26 |
[결정알고리즘] 9. 뮤직비디오 (1) | 2024.01.24 |
[정렬] 8. 이분검색 (0) | 2024.01.20 |
블로그의 정보
DevSecOps
개발하는지호