https://school.programmers.co.kr/learn/courses/30/lessons/120848
def fact(z):
answer = 1
for i in range(1, z+1):
answer *= i
return answer
def solution(n):
answer = []
for i in range(1, 11):
if fact(i) <= n:
answer.append(i)
return max(answer)
from math import factorial
def solution(n):
k = 10
while n < factorial(k):
k -= 1
return k
import math
def solution(n):
answer = 0
for i in range(1, 12):
if n < math.factorial(i):
return i - 1
return answer
다른 사람들의 풀이를 보고서 파이썬 자체에서 팩토리얼을 제공해준다는 사실을 깨달았다.
1번째 풀이는 10!에서 하나씩 줄여가면서 n값보다 작을 경우에 k값을 리턴해주는 담백한 소스였고, 2번째 풀이도 하나씩 값을 줄여준다는 것에서 동일했다. 나는 거기까지는 생각을 못했고, 값들을 모아 최대값을 돌려주면되겠다고 생각했는데 메모리적인 측면에서 따로 배열을 만들필요없이 간소화해보는 것도 고려해야겠다.