알고리즘

04 - 재귀함수

jyu_seo_ 2025. 12. 25. 23:06

재귀(Recursion)은 어떠한 것을 정의할 때 자기 자신을 참조하는 것을 뜻한다.

 

재귀 함수를 왜 사용하는 걸까요? 바로, 재귀 함수를 이용해서 간결하고 효율성 있는 코드를 작성할 수 있기 때문이다.

 

재귀함수를 사용할때 주의해야 할 점 : 재귀함수는 반드시 빠져나가는 지점을 명확하게 정해줘야 합니다. 그렇지 않으면 무한 루프에 빠져서 에러가 날 것이다

 

재귀함수는 크게 2가지로 나뉜다

 

팩토리얼

팩토리얼은 1부터 어떤 양의 정수 n까지의 정수를 모두 곱한 것을 의미합니다.

Factorial(n) = n * Factorial(n - 1) Factorial(n - 1) = (n - 1) * Factorial(n - 2) .... Factorial(1) = 1 n이 1일때 탈출합니다.

회문검사

 

가련하시다 사장 집 아들 딸들아 집 장사 다시 하련가 같은 단어를 회문 이라고 합니다

컴퓨터는 문자열을 보고 아래처럼 어떻게 회문인지 확인할 수 있을까요?

 

is_palindrome("토마토")

# True is_palindrome("tomato")

# False is_palindrome("abcba") # True 등등...

 

문자열을 돌면서 맨 앞의 문자와 맨 뒤의 문자, 맨 앞에서 두번째 문자와 맨 뒤에서 두번째 문자 ... 를 비교하시면 됩니다!

 

그런데, 이 방법을 재귀 함수를 이용해서 해결할 수 있습니다

재귀 함수의 목적은 문제의 범위를 점점 좁혀가는 것입니다.

 

문자열의 길이가 1보다 작거나 같을때, 그리고 맨 첫번째 문자와 맨뒤의 문자가 다를때, 탈출시키도록 한다.

 

'알고리즘' 카테고리의 다른 글

06 - Stack & Queue  (1) 2025.12.26
05 - Sorting(정렬)  (0) 2025.12.26
03 - 이진탐색  (0) 2025.12.16
02 - Array & Linked List  (0) 2025.12.16
01 - 알고리즘  (1) 2025.12.08