TIL

zumwhol·2021년 4월 2일
0

TIL

목록 보기
1/1

✍🏻 재귀

  • 재귀 함수란 호출되어 실행할 때, 함수 내부에서 다시 자신을 호출하는 것
  • 재귀는 선형 구조여서 나중에 들어간 자료들이 먼저 나온다.

재귀의 호출

  • 재귀는 함수안에서 자신을 호출 시키기 때문에 재귀 호출을 종료하는 조건 문장(base case)이 들어가야한다.
  • 재귀 종료를 하는 문장 뒤에 재귀할 코드를 넣어주면 된다.
function multiply(arr){
//(base case)
  if(arr.length === 0){ 
  return 1;
  }
//(recursive case)
  const head = arr[0];
  const tail = arr.slice(1);
  return head * multiply(tail);
}
// multiply([1, -2, 1, 3]) return -6
//   return 1 * multiply(-2,1,3) = -6
//               return -2 * multiply([1,3]) = -6
//                             return 1 * multiply([3]) = 3
//                                          return 3 * multiply([]) = 3
//                                                       return 1 재귀 종료

❓recursive 와 iterative
recursive도 자신을 계속 호출시켜 조건에 맞게 반복하고 iterative도 for문 등으로 반복하는 작업을해서 비슷하긴 iterative로 코드를 작성하다보니 너무 길어지거나 가독성이 좋지 않다면 재귀를 사용할 것 같다. 하지만 호출 스택이 너무 커진다면 반복문으로 대체하며 사용할 것 같다.

관심 있을 만한 포스트

0개의 댓글