재귀 함수 파트 2
Coddy Python 여정의 Logic & Flow 섹션에 포함된 레슨 — 78개 중 61번째.
재귀 함수는 일반적으로 두 부분으로 구성됩니다:
- 기본 케이스(Base Case): 재귀가 중단되어야 하는 시점을 정의합니다.
- 재귀 단계(Recursive Step): 더 작은 입력을 사용하여 함수 자체를 호출합니다.
예제: 재귀를 사용하여 팩토리얼 계산하기:
def factorial(n):
if n == 1: # 기저 사례 (Base case)
return 1
return n * factorial(n - 1) # 재귀 호출 (Recursive call)
print(factorial(5)) # Output: 120여기서 함수는 1에 도달하여 재귀가 멈출 때까지 n - 1을 사용하여 자기 자신을 계속 호출합니다.
예시: 문자열 뒤집기:
def recursive_reverse(s):
if len(s) <= 1: # 기저 사례: 빈 문자열이거나 단일 문자인 경우
return s
else:
return recursive_reverse(s[1:]) + s[0] # 재귀 단계
text = "hello"
result = recursive_reverse(text)
print(result)
# 출력: olleh이 예제에서 recursive_reverse 함수는 문자열이 비어 있거나 하나의 문자만 남을 때까지 문자열의 나머지 부분(s[1:])과 함께 자기 자신을 호출합니다. 각 호출은 첫 번째 문자를 재귀 호출의 결과에 추가하여 효과적으로 문자열을 뒤집습니다.
챌린지
쉬움양의 정수 n을 인자로 받아 n번째 피보나치 수를 반환하는 fibonacci라는 이름의 재귀 함수를 작성하세요. 피보나치 수열은 다음과 같이 정의됩니다:
fibonacci(1) = 0fibonacci(2) = 1n > 2인 경우fibonacci(n) = fibonacci(n-1) + fibonacci(n-2)
예시 입력:
n = 6예시 출력:
5치트 시트
재귀 함수에는 두 가지 필수적인 부분이 있습니다:
- 기본 케이스(Base Case): 재귀가 언제 멈춰야 하는지 정의합니다
- 재귀 단계(Recursive Step): 더 작은 입력을 사용하여 함수 자체를 호출합니다
팩토리얼 예시:
def factorial(n):
if n == 1: # 기본 케이스
return 1
return n * factorial(n - 1) # 재귀 호출
print(factorial(5)) # 출력: 120문자열 뒤집기 예시:
def recursive_reverse(s):
if len(s) <= 1: # 기본 케이스: 빈 문자열 또는 단일 문자 문자열
return s
else:
return recursive_reverse(s[1:]) + s[0] # 재귀 단계
text = "hello"
result = recursive_reverse(text)
print(result) # 출력: olleh직접 해보기
def fibonacci(n):
# 여기에 코드를 작성하세요이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.