[코플릿] 재귀

tia·2021년 11월 14일
0

코플릿

목록 보기
5/5
post-thumbnail

🤷🏻‍♀️ 재귀

05_arrSum

문제

배열을 입력받아 모든 요소의 합을 리턴

입출력 예시

let output = arrSum([-1, -2, 1, 3]);
console.log(output); // --> 1

나의 코드

function arrSum(arr) {
  if(arr.length === 0) return 0;
  
  const head = arr[0];
  const tail = arr.slice(1);
  return head + arrSum(tail);
}

✅ 문제에서 주어진 힌트를 보고 구현 할 수 있었다. 이런 문제 접근 방식에 익숙해지자!


07_arrLength

문제

배열을 입력받아 그 길이를 리턴

입출력 예시

let output = arrLength([1, -2, 1, 3]);
console.log(output); // --> 4

주의 사항

  • arr.length 사용 금지
  • arr.isEmpty()를 통해 배열이 비어있는지 확인 가능

나의 코드

function arrLength(arr) {
  if(arr.isEmpty()) return 0;
  return 1 + arrLength(arr.slice(1));
}

/*
 arr = [1, 2, 3] 인 경우,

 arr.isEmpty()는 false 이므로 if문은 건너뛰고
 return에 걸린 1 + arrLength([2,3]) 실행

 arrLength([2,3]) -> return 1 + arrLength([3])
 arrLength([3]) -> return 1 + arrLength([])
 arrLength([]) -> arr.isEmpty()가 true 이므로 return 0

 1 + arrLength([2,3])
 1 + 1 + arrLength([3])
 1 + 1 + 1 + arrLength([])
 1 + 1 + 1 + 0

 리턴 값은 3!
*/

08_drop

문제

수(num)와 배열을 입력받아 차례대로 num개의 요소가 제거된 새로운 배열을 리턴

입출력 예시

let output = drop(2, [1, -2, 1, 3]);
console.log(output); // --> [1, 3]

output = drop(5, [1, -2, 1, 3]);
console.log(output); // --> [ ]

주의 사항

  • numarr.length 중 최소값만큼 제거

나의 코드


0개의 댓글

관련 채용 정보