재귀 함수란 쉽게 이야기해서 함수내에서 자기 자신을 다시 호출하는 함수를 말한다. 즉, 함수A가 함수 내에서 자기 자신인 함수A를 호출하는 것이다. 간단한 예시로 아래와 같은 코드를 들 수 있다.
def recursive():
print("재귀 함수 호출")
recursive()
recursive()
위의 예시에 대해 해석해보면 먼저 가장 아랫줄의 코드를 통해서 함수 recursive가 호출되게 된다. 그 이후 함수 내에서 "재귀 함수 호출" 이라는 메시지를 출력하게 되고 다음으로 다시 recursive 함수를 호출한다. 다음 호출에도 똑같은 과정이 반복될 것이고 따라서 무한으로 메시지가 출력되며 계속 함수가 호출되게 된다.
물론 파이썬에서는 재귀의 최대 깊이가 존재하기 때문에 어느정도 재귀 함수가 호출되고 오류 메시지와 함께 프로그램이 종료 되는 것을 확인할 수 있다. 이처럼 재귀 함수에는 재귀 호출에서의 종료 조건이 필요한 것이다. 또한 코딩 테스트에서도 무한히 재귀 호출을 해야 하는 문제는 출제되지 않을 것임이 분명하다. 따라서 재귀 함수를 사용하는 알고리즘을 구현할 때는 반드시 적절한 종료 조건을 추가해야 한다. 이에 대해서는 다음 게시물에서 이야기 하도록 한다.
'Algorithm' 카테고리의 다른 글
재귀 함수 (3) - 재귀 함수의 대표적인 예 : 팩토리얼 (Factorial) (0) | 2023.07.30 |
---|---|
재귀 함수 (2) - 재귀 함수의 종료 조건 (0) | 2023.07.30 |
자료구조 (Data Structure) (3) - 큐 (Queue) 란? (0) | 2023.07.30 |
자료구조 (Data Structure) (2) - 스택 (Stack) 이란? (0) | 2023.07.30 |
자료구조 (Data Structure) (1) - 탐색과 자료구조란? (0) | 2023.07.29 |