Programmers/프로그래머스-팩토리얼-python

cosmos·2022년 10월 27일
0
post-thumbnail
post-custom-banner

문제

풀이

  • 팩토리얼은 반복되는 값을 가진다.
  • ex: 1: 1, 2: 12, 3: 12*3
  • 반복되는 값을 저장할 땐, 다이나믹 프로그래밍을 활용하면 더 효율적이다.

코드

# https://school.programmers.co.kr/learn/courses/30/lessons/120848
# programmers, level0: 팩토리얼, python3
def solution(n: int) -> int:
    d = [0] * 3628801  # dp table 할당
    d[1], result = 1, 1

    while True:
        if d[result] > n:
            return result - 1

        result += 1
        d[result] = result * d[result-1]

if __name__ == '__main__':
    print(solution(3628800))  # 10
    print(solution(7))  # 3

결과

출처 & 깃허브

programmers 팩토리얼
github

post-custom-banner

0개의 댓글