반응형
✔️재귀함수란?
재귀 함수(Recursive Function)는 컴퓨터 과학 및 프로그래밍에서 중요한 개념 중 하나로, 함수가 자기 자신을 호출하는 것을 의미합니다. 이것은 어떤 문제를 해결하기 위해 주어진 작업을 반복적으로 수행하거나, 복잡한 문제를 간단한 단계로 분해하여 해결하는 데 사용됩니다. 이 글에서는 재귀 함수의 개념, 작동 방식, 예제 및 주의할 점을 자세히 설명하겠습니다.
💡 동작 방식
- 재귀 함수는 자신을 호출합니다.
- 호출될 때마다 함수는 주어진 입력에 대한 작업을 수행하고, 작업이 완료되면 자기 자신을 호출하여 똑같은 작업을 반복합니다.
- 재귀 함수는 종료 조건을 가지고 있어야 합니다. 종료 조건이 충족되면 재귀 호출이 멈추고 함수가 종료됩니다. 이렇게 하지 않으면 무한한 재귀 호출이 발생하여 스택 오버플로우 오류가 발생할 수 있습니다.
💡재귀함수 구현 예)
📌 팩토리얼 계산
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
public class Factorial {
public static int factorial(int n) {
if (n == 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}
public static void main(String[] args) {
int result = factorial(5);
System.out.println("5의 팩토리얼은 " + result + "입니다.");
}
}
|
cs |
📌 팩토리얼 계산
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
public class Fibonacci {
public static int fibonacci(int n) {
if (n <= 1) {
return n;
} else {
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
public static void main(String[] args) {
int result = fibonacci(5);
System.out.println("피보나치 수열의 5번째 항은 " + result + "입니다.");
}
}
|
cs |
💡 재귀 함수 주의사항
- 재귀 함수는 종료 조건을 반드시 가져야 합니다.
- 재귀 호출의 깊이가 너무 깊어지지 않도록 주의해야 합니다. 이러한 경우에는 반복문을 사용하는 것이 더 효율적일 수 있습니다.
- 재귀 함수를 사용할 때 메모리 사용에 주의해야 합니다. 큰 깊이의 재귀 호출은 스택 메모리를 많이 사용할 수 있습니다.
반응형
'프로그래밍 > Algorithm' 카테고리의 다른 글
[프로그래머스 Lv.2] 타겟 넘버 (0) | 2023.09.13 |
---|---|
[프로그래머스 Lv.1] 완주하지 못한 선수 (0) | 2023.09.10 |
[프로그래머스 Lv.1] 신규 아이디 추천 (0) | 2023.09.09 |
[프로그래머스 Lv.2] 가장 큰 수 (0) | 2023.09.08 |
[Algorithm] DFS와BFS (0) | 2023.09.07 |