[Til] 9/4 재귀함수 문제

이종원·2020년 9월 4일
1

배열을 입력 받아 모든 요소의 합을 구하여라

  1. 빈배열인 경우 값은 0으로 한다
    -조건문 사용 arr.length
  2. 0번째 인덱스 를 변수로 선언
    • let = head
  3. 0번째 인덱스를 제외한 나머지를 변수 선언
    변수를 선언하고 slice() 사용으로 나머지를 가져옴
function arrSum(arr) {
  if(arr.length === 0){
    return 0
  } // 배열의 길이가 0이면 리턴값은 0이다

 let head = arr[0] // 인덱스 0번째 속성을 머리 변수로 선언
 let tail = arr.slice(1) // 1번째부터 나머지 속성을 꼬리 변수로 선언

  return head + arrSum(tail)// 머리 변수 + 자기 함수를 불러온후 그안에 나머지 꼬리변수를 넣음
  }
  
 // - 1 + (-2) = -3
 // -3 + 1 = -2
 // -2 + 3 = 1
 리턴값 = 1

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

결론
재귀문제에서 가장 기본적인 문제이지만 이해하는 과정에서 어려움을 느꼈다
하지만 분명 이 문제는 for문으로 충분히 풀수있는 문제이지만
재귀함수 사용으로 코드가 좀 더 간결해서 가독성 측면에서 좋은거 같다

0개의 댓글