• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

질문 드립니니다.

23.01.14 15:18 작성 조회수 220

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

안녕하세요^^

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