재귀호출(recursive call)이란?
재귀호출(recursive call)이란 함수 내부에서 자기 자신을 반복적으로 호출하는 것을 의미한다. 반복 행위를 하는 함수를 재귀호출(recursive call)라고 한다. 일반적인 상황에서는 잘 사용하지 않지만 알고리즘을 구현할 대 매우 유용하다.
알고리즘에 따라서 반복문으로 구현한 코드보다 재귀호출(recursive call)로 구현한 코드가 더 직관적이고 이해하기 쉽다.
복잡한 문제를 빠르고 쉽게 해결할 수 있다.
꼭 알아야 하는 지식!
재귀호출(recursive call)
- 재귀호출은 반드시 중지되어야 한다.
- 재귀호출로 문제를 해결할 수 있는지 잘 고민해야 한다.
재귀호출(recursive call) 이론
아래 사진은 팩토리얼로 예시를 들어 만든 사진입니다.
현재 그림만 보면 이해가 안 될 수 있지만 다음 코드를 보시고 이 그림을 한번 더 보시면
이해가 잘 될 겁니다.
재귀호출(recursive call) 코드
using System;
class Program
{
static void Main(string[] args)
{
int number = 3;
int result = Factorial(number);
Console.WriteLine($"{number}! = {result}"); // 출력: 3! = 6
}
static int Factorial(int n)
{
// 기저 조건: n이 0이거나 1이면 1을 반환
if (n <= 1)
{
return 1;
}
// 재귀 호출: n * Factorial(n-1)
return n * Factorial(n - 1);
}
}

728x90
'컴퓨터공학 > 알고리즘' 카테고리의 다른 글
알고리즘 - 퀵정렬(quick sort) c# (0) | 2025.05.04 |
---|---|
알고리즘 - 삽입정렬(insertion sort) c# (0) | 2024.09.10 |
알고리즘 - 버블정렬(bubble sort) c# (0) | 2024.06.06 |
알고리즘 - 선택정렬(selection sort) c# (0) | 2024.06.06 |