Algorithm

재귀 (Recursion)

주인장 꼬비 2022. 7. 24. 15:14

목표

- 재귀가 무엇이며, 어떻게 유용한지를 정의

- 재귀 함수(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/

 

JavaScript (JS) Algorithms and Data Structures Masterclass

정렬, 리스트, 힙 스택을 포함한 12개의 알고리즘과 10개 이상 자료구조 학습으로 기술 면접 완벽하게 대비!

www.udemy.com