재귀의 개념

Chunli91·2022년 10월 20일

알고리즘

목록 보기
1/2

재귀(再歸) : 원래의 자리로 되돌아가거나 되돌아옴.

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

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

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

function recursive(input1, input2, ...) {
// base case : 문제를 더 이상 쪼갤 수 없는 경우
if (문제를 더 이상 쪼갤 수 없을 경우) {
return 단순한 문제의 해답;
}

// recursive case : 그렇지 않은 경우
return 더 작은 문제로 새롭게 정의된 문제
}

profile
30대에 새로운 도전을 시도하는 사람입니다.

0개의 댓글