Language/Python
[Python] factorial 구현 : recursive, iterative, math library 사용별 예시와 관련문제 풀이
juyeong
2023. 2. 2. 20:06
반응형
팩토리얼을 파이썬에서 구현하는 3가지 방법을 정리합니다.
우선 팩토리얼이란,
팩토리얼: 1 x 2 x 3 x ... x (n-1) x n
예제: 5!
=> 5 x 4 x 3 x 2 x 1 = 120.
1. iterative 반복적 구현
def factorial_iterative(n):
result = 1
# 1부터 n까지의 수를 차례로 곱함
for i in range(1, n+1):
result *= i
return result
2. recursive 재귀적 구현 (재귀함수 사용이 코드면에서 간결함)
def factorial_recursive(n):
# n이 1 이하인 경우 1을 반환
if n <= 1:
return 1
return n * factorial_recursive(n-1)
3. math library 의 factorial 사용
from math import factorial
관련 문제
1. 라이브러리 사용
프로그래머스의 팩토리얼 (https://school.programmers.co.kr/learn/courses/30/lessons/120848)
: 정확하게는 팩토리얼 구현 문제가 아니고, 팩토리얼 개념을 이용해야함.
math 라이브러리를 사용하지 않은 답안
def solution(n):
factorial = 1
i = 1
while factorial <= n:
i += 1
factorial *= i
return i - 1
math 라이브러리 사용한 답안. 위와 거의 동일하지만 확실히 간결함.
from math import factorial
def solution2(n):
i = 1
while factorial(i) <= n:
i += 1
return i - 1
2. 재귀함수 이용
이건 bfs 문제를 가져와야하는데, 추가로 포스팅하여 연결링크를 달아둘 예정.
반응형