본문 바로가기
코딩테스트 입문/Python

[프로그래머스/programmers] 팩토리얼

by Peter.JH 2023. 7. 19.
728x90

문제:

i팩토리얼 (i!)은 1부터 i까지 정수의 곱을 의미합니다. 예를들어 5! = 5 * 4 * 3 * 2 * 1 = 120 입니다. 정수 n이 주어질 때 다음 조건을 만족하는 가장 큰 정수 i를 return 하도록 solution 함수를 완성해주세요.

  • i! ≤ n

 

 

입력:

 

정수 n

 

출력:

 

i! ≤ n 에 만족하는 가장 큰 정수

 

제한사항:

 

0 < n ≤ 3,628,800

 

 

입출력 예:

 

n result
3628800 10
7 3

 

solution.py:

 

from math import factorial as fac

def solution(n):
    k = 10
    while n < fac(k):
        k -= 1

    return k

 

 

풀이설명: 

 

python으로 factorial을 구현하는 방법은 여러 가지 있지만 가장 편하고 빠른 방법은 math 라이브러리의 factorial을 사용하는 방법입니다.

제한사항으로 주어진 것을 활용해 최대로 나올 수 있는 값은 10이므로 10에서부터 1씩 감소하며 값을 찾는 방식입니다.

 

 

참조: https://docs.python.org/3/library/math.html

728x90