반응형
문제
자연수 N을 입력하면 N!값을 구하세요.
N! = n(n-1)(n-2).....21입니다.
만약 N=5라면 5!=5432*1=120입니다.
풀이
팩토리얼과 같이 값을 전달해야 하는 문제의 경우, 재귀를 돌 때 return을 통해 각 DFS가 값을 전달하고 이를 통해 구해진 하나의 값을 반환하여 해결한다.
#1
function solution(n) {
let answer = 1;
function DFS(L, fact) {
if (L === 1) {
answer = fact;
} else {
DFS(L - 1, fact * (L - 1));
}
}
DFS(n, n);
return answer;
}
#2
function solution(n) {
function DFS(n) {
if (n === 1) return 1;
else return n * DFS(n - 1);
}
return DFS(n);
}
반응형
'Algorithm > Inflearn' 카테고리의 다른 글
[알고리즘/인프런] 수열 추측하기(순열, 이항계수) (1) | 2023.05.21 |
---|---|
[알고리즘/인프런] 조합의 경우의 수(메모이제이션) (0) | 2023.05.21 |
[알고리즘/인프런] 동전교환 (0) | 2023.05.21 |
[알고리즘/인프런] 순열 구하기 (0) | 2023.05.21 |
[알고리즘/인프런] 중복 순열 (0) | 2023.05.21 |