Study/JavaScript

[코드스테이츠 TIL] 재귀 Recursion

xiubin 2019. 11. 13. 12:08
반응형

 

 

재귀 : 함수를 스스로 호출하는 것

 

- 기본적으로 반복문이므로 모든 재귀는 반복문으로 표현 가능하다

- 무한 반복을 방지하기 위해 반드시 탈출 조건이 있어야 한다

 

//재귀
function factorial(n) {
	//base case : n이 0이면 재귀를 더 이상 진행하지 않는다
	if(n===0){
		return 1;
	}
	//recursive case
	return n * factorial(n-1);
}

//반복
function factorial(n) {
	let result = 1;
	for (let i=n; i>0; i--) {
		result = result * i;
	}
	return result;
}

 

  • 재귀의 사용 : 피보나치 수열, 돔 트리 구조 탐색
  • 재귀의 장점 : 알고리즘이 재귀로 표현하기 자연스러울경우 프로그램 가독성이 좋다
  • 재귀의 단점 : 값이 리턴되기 전까지 호출마다 call stack을 새로 생성하므로 반복문보다 메모리를 많이 사용한다

 

반응형