[SEB_FE_44] 자료구조/알고리즘 - 재귀

유영준·2023년 4월 11일
post-thumbnail

오늘 배운 주제


  • 재귀

오늘 배운 내용


  • arrSum 함수 (재귀)
function arrSum (arr) {
  // 빈 배열을 받았을 때 0을 리턴하는 조건문
  //   --> 가장 작은 문제를 해결하는 코드 & 재귀를 멈추는 코드
  if (arr.length === 0) {
    return 0
  }

  // 배열의 첫 요소 + 나머지 요소가 담긴 배열을 받는 arrSum 함수
  //   --> 재귀(자기 자신을 호출)를 통해 문제를 작게 쪼개나가는 코드
	return arr.shift() + arrSum(arr)
}

재귀는 언제 사용하는 게 좋을까?

  1. 주어진 문제를 비슷한 구조의 더 작은 문제로 나눌 수 있는 경우
  2. 중첩된 반복문이 많거나 반복문의 중첩 횟수(number of loops)를 예측하기 어려운 경우

오늘의 과제


코플릿 - 재귀

13~15번을 제외한 나머지 문제는 난이도가 쉬웠다.

13~15번에서 거의 2시간이 소요되었지만 테스트케이스 1~2개 차이로 통과를 못해 결국 레퍼런스를 보고 풀었다.

일단 접근법은 맞았다. 13~15번 문제가 이중 객체나 이중 배열 문제였는데 재귀로 객체나 배열안에 들어가서 어떻게 리턴을 처리해야하는지 고민이 많았음

profile
프론트엔드 개발자 준비 중

0개의 댓글