Menu
Coddy logo textTech

재귀 함수 파트 2

Coddy Python 여정의 Logic & Flow 섹션에 포함된 레슨 — 78개 중 61번째.

재귀 함수는 일반적으로 두 부분으로 구성됩니다:

  1. 기본 케이스(Base Case): 재귀가 중단되어야 하는 시점을 정의합니다.
  2. 재귀 단계(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:])과 함께 자기 자신을 호출합니다. 각 호출은 첫 번째 문자를 재귀 호출의 결과에 추가하여 효과적으로 문자열을 뒤집습니다.

challenge icon

챌린지

쉬움

양의 정수 n을 인자로 받아 n번째 피보나치 수를 반환하는 fibonacci라는 이름의 재귀 함수를 작성하세요. 피보나치 수열은 다음과 같이 정의됩니다:

  • fibonacci(1) = 0
  • fibonacci(2) = 1
  • n > 2인 경우 fibonacci(n) = fibonacci(n-1) + fibonacci(n-2)

예시 입력:

n = 6

예시 출력:

5

치트 시트

재귀 함수에는 두 가지 필수적인 부분이 있습니다:

  1. 기본 케이스(Base Case): 재귀가 언제 멈춰야 하는지 정의합니다
  2. 재귀 단계(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):
    # 여기에 코드를 작성하세요
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

Logic & Flow의 모든 레슨