반복문과 재귀 함수 비교
1부터 정해진 숫자까지의 곱을 의미하는 팩토리얼(Factorial)
은 반복문이나 재귀 함수를 활용해 코드로 구현할 수 있습니다.
이번 수업에서는 반복문과 재귀 함수를 사용하여 팩토리얼을 계산하는 방법을 알아보겠습니다.
반복문으로 팩토리얼 구하기
반복문
을 활용해 팩토리얼을 구하려면, 아래와 같이 for 문
을 사용해 1
부터 n
까지의 수를 차례로 곱하여 결과를 계산할 수 있습니다.
반복문으로 팩토리얼 구하기
def factorial_iterative(n):
result = 1
for i in range(1, n + 1):
result *= i
return result
print(factorial_iterative(5))
# 120
재귀 함수로 팩토리얼 구하기
재귀 함수
를 활용해 팩토리얼을 구하려면, 아래와 같이 함수 내부에서 factorial_recursive
자기 자신을 호출하며 팩토리얼을 계산할 수 있습니다.
재귀 함수로 팩토리얼 계산 예시
def factorial_recursive(n):
if n == 1:
return 1
else:
return n * factorial_recursive(n - 1)
print(factorial_recursive(5))
# 120
두 방법은 어떻게 다를까요?
반복 문과 재귀 함수를 활용해 구현한 팩토리얼의 결과는 동일하지만, 두 방법은 다음과 같은 차이점이 있습니다.
-
속도
: 일반적으로 반복문은 재귀 함수보다 빠릅니다. 재귀 함수는 함수를 내부적으로 계속 호출하기 때문에 반복문보다 느릴 수 있습니다. -
메모리 사용
: 재귀 함수는 자기 자신을 계속해서 호출하기 때문에 보다 더 많은 메모리를 사용합니다.
재귀 함수는 코드가 간결하고 이해하기 쉬운 장점이 있지만, 반복문보다 성능이 떨어질 수 있으므로 사용 시 주의가 필요합니다.
다음 내용이 궁금하다면?
코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!