def solution(n):
    answer = []
    fac = 1 # 곱해줘야 하니까 1부터 시작
    
    for i in range(1,11):   # 최대 팩토리얼은 10
        fac *= i    # 팩토리얼 코드
        if fac <= n:    # 10! 값보다 작아야 함
            answer.append(i)
        
    return answer[-1]	# 리스트에 들어간 끝 숫자만 출력

 

 

재귀함수를 통한 팩토리얼 만들기 

# 재귀함수
def fact(n):
    answer = n*fact(n-1)
    return answer

 

팩토리얼 계산할 때는 이런 식으로 표현할 수 있어요!


실패 흔적들 

1트

#1트
def solution(n):
    fac = 1 # 곱해줘야 하니까 1부터 시작
    
    for i in range(1,n+1):
        fac *= i
        
    return fac

 

이렇게 해서, 팩토리얼은 완성했지만

문제에서 원하는 답은 몇 팩토리얼을 한 거냐!! 이거예요 🙄

그래서 틀렸어요

 

2트

def solution(n):
    answer = []
    fac = 1 # 곱해줘야 하니까 1부터 시작
    
    for i in range(1,11):   # 최대 팩토리얼은 10
        fac *= i    # 팩토리얼 코드
        if fac <= n:    # 10! 값보다 작아야 함
            answer.append(i)
        
    return answer

 

결괏값을 보면 i가 다 들어가있더라고요 🤔

그래서 어차피 팩토리얼이니까 가장 큰 숫자만 넣으면 돼서

 

def solution(n):
    answer = []
    fac = 1 # 곱해줘야 하니까 1부터 시작
    
    for i in range(1,11):   # 최대 팩토리얼은 10
        fac *= i    # 팩토리얼 코드
        if fac <= n:    # 10! 값보다 작아야 함
            answer.append(i)
        
    return answer[-1]

 

그래서 answer[-1]을 써서 마지막에 있는 값만 return 했더니 문제 해결!!

+ Recent posts