Menu
CoddyTech

재귀 함수 2부

Coddy Python 여정의 논리와 흐름 섹션에 포함된 레슨. 78개 중 61번째.

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

  1. 기저 사례: 재귀가 언제 멈춰야 하는지 정의합니다.
  2. 재귀 단계: 더 작은 입력으로 함수 자체를 호출합니다.

예시: 재귀를 사용해 팩토리얼 계산하기:

def factorial(n):
    if n == 1:  # 기저 사례
        return 1
    return n * factorial(n - 1)  # 재귀 호출

print(factorial(5))  # 출력: 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
  • fibonacci(n) = fibonacci(n-1) + fibonacci(n-2)이며, n > 2입니다.

입력 예시:

n = 6

출력 예시:

5

직접 해보기

def fibonacci(n):
    # 여기에 코드를 작성하세요
quiz icon실력 점검

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

논리와 흐름의 모든 레슨

직접 연습해 보세요: 온라인 Python 컴파일러