재귀

jung_ho9 개발일지·2022년 12월 15일
0

자료구조/알고리즘

목록 보기
2/13

재귀의 개념


재귀란 원래 자리로 되돌아오거나 되돌아옴을 의미함

function recursion () {
  console.log("This is")
  console.log("recursion!")
  recursion()
}

recursion함수를 호출했더니, 자기 자신을 끝없이 호출하면서 같은 코드가 계속해서 실행되는 것을 볼 수 있다.

재귀로 문제 해결

문제: 자연수로 이루어진 리스트(배열)를 입력받고, 리스트의 합을 리턴하는 함수 arrSum 을 작성하세요.

  1. 문제를 좀 더 작게 쪼갠다.
  2. 1번과 같은 방식으로, 문제가 더는 작아지지 않을 때까지, 가장 작은 단위로 문제를 쪼갠다.
  3. 가장 작은 단위의 문제를 풂으로써 전체 문제를 해결한다.

이 과정을 이용해서 배열 [1, 2, 3, 4, 5] 의 합을 구하는 과정을 재귀로 풀어보자!

재귀는 언제 사용하나요 ?

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

모든 재귀 함수는 반복문(while 문 또는 for 문)으로 표현할 수 있으나 재귀를 적용할 수 있는 대부분의 경우에는, 재귀를 적용한 코드가 더욱 간결하고 이해하기 쉽다.

재귀의 활용


재귀적으로 사고

1. 재귀 함수의 입력값과 출력값 정의하기

profile
꾸준하게 기록하기

0개의 댓글

관련 채용 정보