인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

ML님의 프로필 이미지
ML

작성한 질문수

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

11. 팩토리얼

질문 드립니니다.

작성

·

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

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

같은 재귀입니다. 영상의 방식은 재귀가 리턴한 값을 받아서 답을 만들어 가는 패턴이고, 위에 방식은 재귀의 매개변수 값을 전역변수에 누적하는 방식입니다. 패턴의 차이라고 생각하시면 좋겠습니다.

ML님의 프로필 이미지
ML

작성한 질문수

질문하기