728x90
재귀(Recursion)
- 어떠한 것을 정의할 때 자기 자신을 참조하는 것
- 재귀적 정의 또는 순환 정의 라고도 함
재귀 함수(Recursive Function) / 재귀 알고리즘(Recusive Algorithm)
- 하나의 함수에서 자기 자신을 다시 호출해 수행하는 알고리즘
- 귀납적 문제 해결 방식(기존의 절차지향적인 문제 해결 방식과는 다름)
- 모든 재귀 함수는 반복문으로 치환 가능
- 상황에 따라서 반복문이 코드가 너무 길고 복잡해질 경우 재귀 함수 사용
- 반복문 대신 재귀 함수로 구현했을 경우 코드가 간결하지만, 메모리/시간 측면에서 손해
- 자기 자신을 여러 번 호출하는 것은 비효율적!
- 재귀 호출 시에는 스택 영역에 계속 누적됨
접근방식
- 함수의 정의
- Base Condition 정의(필수)
- 자기 자신을 호출하지 않고 재귀 함수를 빠져나올 수 있는 조건
- 재귀식 정의
728x90
반응형