Programming/알고리즘

[프로그래머스] Lv 0 팩토리얼 - Python

해치 2022. 12. 26. 19:49
728x90

1. 문제

https://school.programmers.co.kr/learn/courses/30/lessons/120848

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

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

 

2. 제한사항

 

3. Python code

def solution(n):
    answer = 1
    fac = 1
    while fac <= n :
        answer += 1
        fac = fac * answer
    answer = answer-1
    
    return answer

while 문으로 factorial을 구현했다.

 

from math import factorial

def solution(n):
    answer = 10
    while n < factorial(answer):
        answer -= 1
    return answer

math의 factorial을 사용한 코드

제한사항에 n은 2!보다 같거나 작다고 했으므로 10부터 1씩 빼주면서 확인한다.