프로그래머스/파이썬_입문

팩토리얼

싱싱한복초이 2024. 10. 16. 16:06

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 함수를 완성해주세요.

  • i! ≤ n

제한사항

  • 0 < n ≤ 3,628,800(10!)

 

[나의 풀이]

import math 
def solution(n):
    a=[]
    for i in range(1,11):
        if math.factorial(i) <= n:
            a.append(i)
    return max(a)

 

[다른 풀이]

from math import factorial

def solution(n):
    k = 1
    while factorial(k) <= n:
        k += 1
    return k-1

마지막에 k가 아니라 k-1의 값을 return해야함!!

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

위와 비슷한 방법 (math의 factorial()을 사용하지 않은 경우)

def solution(n):
    divider=0
    while 1:
        divider+=1
        if n/divider < 1:
            break
        else:
            n/=divider
    return divider-1

 

'프로그래머스 > 파이썬_입문' 카테고리의 다른 글

주사위의 개수  (0) 2024.10.18
합성수 찾기  (0) 2024.10.17
배열 회전시키기  (0) 2024.10.15
append(), +=, join()  (0) 2024.10.14
공 던지기  (0) 2024.10.14