목표
- 재귀가 무엇이며, 어떻게 유용한지를 정의
- 재귀 함수(Recursive function) 작성의 두 가지 핵심 구성 요소를 이해
- Call Stack 이라는 것에 대한 학습
- Call Stack과 Recursive function 의 관계
재귀함수란 무엇인가?
재귀함수는 자기 자신을 호출하는 절차이다.
Recursion이 사용되고 있는 곳
- JSON.parse / JSON.stringify
- document.getElementById & DOM traversal algorithms
- Object traversal (객체 순회)
재귀 함수 작성에서 두 가지 핵심 구성 요소
- 종료 조건 (재귀가 멈추는 시점을 정해줘야한다.)
- 다른 입력값 (매번 다른 데이터를 가지고 함수를 호출해야 한다)
재귀 함수에서 문제를 발생시키는 케이스
- 종료 조건이 없는 경우 (무한 반복실행)
- 잘못된 값을 return 하거나 애초에 return 하는 것을 잊는 경우
Uncaught RangeError: Maximum call stack size exceeded
-> Stack over flow = 재귀가 멈추지 않는다.
본 내용은 작성자가 (Udemy) JavaScript 알고리즘 & 자료구조 마스터클래스 강의를 듣고 정리 및 메모한 내용입니다. 오역 및 오개념이 있을 수 있으니 바로잡기 위해 문제가 있는 경우 댓글 남겨주시면 매우 감사하겠습니다.
https://www.udemy.com/course/best-javascript-data-structures/
'Algorithm' 카테고리의 다른 글
Helper Method Recursion (+ Pure Recursion) (0) | 2022.07.24 |
---|---|
Call Stack (0) | 2022.07.24 |
[문제풀이] Frequency Counter / Multiple Pointers / Sliding Window (0) | 2022.07.23 |
문제 해결 방법 - Divide and Conquer (분할 정복) (0) | 2022.07.18 |
문제 해결 패턴 - Sliding Window (0) | 2022.07.18 |