백준 27433: 파이썬으로 팩토리얼 풀기. 재귀함수 복습.
2023. 8. 14. 15:14ㆍ코딩테스트
반응형
팩토리얼 문제. 재귀로 풀 수도 있고 아닐 수도 있다.
우선 재귀로 안하고 풀 때 :
import sys
def factorial(n: int) -> int:
fact_num = 1
for i in range(1, n+1):
fact_num = fact_num * i
return fact_num
a = int(sys.stdin.readline())
factorial(a)
print(factorial(a))
이렇게 for문을 돌려보면 된다.
그리고 재귀함수를 써보면?
import sys
def factorial(n: int) -> int:
if n <= 1:
return 1
else:
return n * factorial(n-1)
a = int(sys.stdin.readline())
factorial(a)
print(factorial(a))
n * n-1의 반복. 1이 나올 때 까지 반복한다.
그러면 이 경우에는 시간은 얼마나 차이날까?
재귀를 안쓸 때 코드 : 3.3855438232421875e-05
재귀를 썼을 때 코드 : 5.412101745605469e-05
안쓸 때가 더 짧긴 하네.
이 경우에는 재귀의 시간이 목적이 아니라 재귀 사용법이 목적이니까. 애초에 for문과 if를 비교한다는 것도 조금 이상하기도 하고.
아무튼 끝
728x90
'코딩테스트' 카테고리의 다른 글
백준 25192 파이썬 문제풀이. (0) | 2023.08.11 |
---|---|
백준 1037.파이썬 문제풀이 __name__ == "__main__"을 써본다면. (0) | 2023.08.11 |
백준 2346. 파이썬 데크 문제풀이 (0) | 2023.08.09 |
백준 11866 파이썬 문제풀이. (0) | 2023.08.08 |
파이썬 queue 모듈 사용하기. 백준 2164 파이썬 문제풀이. (0) | 2023.08.07 |