본문으로 건너뛰기
실습하기

반복문과 재귀 함수 비교

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 강의를 등록해 주세요!