작성
·
307
0
const solution = (n) => {
let answer = n
const DFS = (m) => {
if (m === 0) return
else {
answer = answer * m
DFS(m - 1)
}
}
DFS(n - 1)
return answer
}
이전까지 설명해주셨던 패턴으로 풀면 위와 같이 전역변수를 설정하고, 그 값을 계속 재할당하는 코드가 나오는데,
이번 강의 예제는 끝까지 콜스택을 타고타고 타서 마지막에 할당하고 리턴하던데,
두 코드에서 개념적으로 어떤 차이점이 있는 걸까요? 그냥 단순히 패턴이 다르다고 이해하면 될까요?
답변 1
0
안녕하세요^^
같은 재귀입니다. 영상의 방식은 재귀가 리턴한 값을 받아서 답을 만들어 가는 패턴이고, 위에 방식은 재귀의 매개변수 값을 전역변수에 누적하는 방식입니다. 패턴의 차이라고 생각하시면 좋겠습니다.