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 문제를 가져와야하는데, 추가로 포스팅하여 연결링크를 달아둘 예정.

반응형