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씩 감소하며 값을 찾는 방식입니다.
다른 풀이와 메모이제이션
2024.10.08 - [기초탄탄/Python] - [ CodeSignal ] 재귀를 이용한 팩토리얼 계산: 메모이제이션
[ CodeSignal ] 재귀를 이용한 팩토리얼 계산: 메모이제이션
재귀는 복잡한 문제를 단순하고 이해하기 쉬운 코드로 표현할 수 있게 해주는 강력한 프로그래밍 기법입니다. 그러나 때로는 재귀 호출이 과도하게 발생하여 성능 저하나 스택 오버플로우와 같
mudata0101.tistory.com
728x90
반응형
'코딩테스트 입문 > Python' 카테고리의 다른 글
[프로그래머스/programmers] 최댓값 만들기(1) (0) | 2023.07.17 |
---|---|
[프로그래머스/programmers] 합성수 찾기 (0) | 2023.07.17 |
[프로그래머스/programmers] 주사위의 개수 (0) | 2023.07.13 |
[프로그래머스/programmers] 배열 회전시키기 (2) | 2023.07.11 |
[프로그래머스/programmers] 공 던지기 (0) | 2023.07.10 |