Notice
Recent Posts
Recent Comments
Link
오늘도 개발
위코드 코드카타 Week3 Day5 - 팩토리얼 구하기 본문
문제
재귀를 사용하여 팩토리얼(factorial)을 구하는 함수를 구현해주세요.
팩토리얼이란 1에서부터 n까지의 정수를 모두 곱한것을 말합니다.
5! = 1 * 2 * 3 * 4 * 5
내가 해결한 방식
1!은 1이다.
2!은 1! * 2이다.
3!은 2! * 3이다.
즉, n!은 (n-1) * n이다.
팩토리얼이란 1부터 n까지 정수를 곱한 값이므로
n이 1인 경우 더 이상 스스로를 호출하면 안 된다.
1!은 1이므로 n이 1인경우 1을 반환한다.
(0도 인수로 들어올 수 있는데, 0!도 1이므로 n이 1과 같거나 작은 경우라고 작성했다.)
그리고 n이 1이 될 때까지 인수에 n-1을 넣어 스스로를 호출한다.
호출을 마치면 반환값에 n을 곱해서 최종값을 구한다.
def factorial(n):
if n <= 1:
return 1
return factorial(n - 1) * n
(재귀 Recursion 포스트 참고)
'자료구조 & 알고리즘 > 위코드 코드카타' 카테고리의 다른 글
| 위코드 코드카타 Week5 Day4 - 연결리스트(Linked List) (0) | 2022.08.31 |
|---|---|
| 위코드 코드카타 Week5 Day3 - 재귀 (0) | 2022.08.03 |
| 위코드 코드카타 Week3 Day2 - 새 배열 만들지 말고 리스트 뒤집기 (0) | 2022.07.19 |
| 위코드 코드카타 Week2 Day4 - 자주 등장한 숫자 k번째까지 반환 (0) | 2022.07.14 |
| 위코드 코드카타 Week1 Day1 - 배열에서 합하면 sum이 되는 두 숫자 반환 (0) | 2022.07.04 |