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 했더니 문제 해결!!
'문제 풀기 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 가까운 수 (+실패 흔적들), 1h 30m (0) | 2025.01.02 |
---|---|
[프로그래머스] 숨어있는 숫자의 덧셈(2) (+ isdigit(), isalpha(), ''.join()), 1h (0) | 2024.12.31 |
[프로그래머스] 모스부호(1) (0) | 2024.12.31 |
[프로그래머스] 중복된 문자 제거 ''.join(dict.fromkeys()) (0) | 2024.12.31 |
[프로그래머스] 2차원 만들기 (+실패 흔적들), 슬라이싱[시작:끝:간격] (0) | 2024.12.30 |