happy coding

[level 0] 팩토리얼 본문

coding study/programmars

[level 0] 팩토리얼

yeoonii 2024. 6. 1. 18:05

문제 설명

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

  • i! ≤ n

제한사항
  • 0 < n ≤ 3,628,800

기존 메소드 말고 직접 만들어 사용하고 싶었다. 

어차피 10까지라고 제한 사항이 걸려 있어서 ans=10으로 고정하고 하나씩 뺐다.

def solution(n):
    ans = 10
    while n < factorial_for(ans):
        ans -= 1
    return ans

def factorial_for(n):
    ret = 1
    for i in range(1,n+1):
        ret *= i
    return ret

 

다른 풀이

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

 

def solution(n):
    base = 1
    m = 1
    while base <= n:
        m += 1
        base *= m
    return m-1

'coding study > programmars' 카테고리의 다른 글

[level 0] 7의 개수  (0) 2024.06.01
[level 0] 직사각형 넓이 구하기  (0) 2024.06.01
[level 0] 모스 부호  (0) 2024.06.01
[level 0] 피자 나눠 먹기(2)  (0) 2024.06.01
[level 0] 합성수 찾기  (0) 2024.06.01
Comments