재귀 함수

이일우·2023년 4월 12일

공부하기

목록 보기
29/42

재귀 함수에 대한 자세한 글

위 글을 클릭해 보면 무슨 장난인가 싶을것이다.
하지만 이것이 재귀를 이해하는 가장 좋은 방법이 아닐까 싶다.
재귀란 자신을 정의할 때 자기 자신을 호출(참조)하는 것이다.

재귀함수

재귀함수란 함수가 자신을 다시 호출하는 형식으로 이루어진 함수를 말한다.
그렇기에 재귀함수에는 종료 조건(Base case)이 있어야 한다.
또한 재귀함수로 작성된 코드는 반복문으로도 작성이 가능하다.

function sum(n){
  if(n===1) return 1
  return n+sum(n-1)
}
console.log(10) // 55

위 코드는 1부터 n까지의 합을 재귀함수로 짠 코드이다. n이 1이 되기 전까진 sum함수가 호출되며, if(n===1) return 1 가 base case라 할 수 있다.

재귀가 사용되는 경우

  1. 주어진 문제를 비슷한 구조의 더 작은 문제로 나눌 수 있는 경우
  2. 중첩된 반복문이 많거나 반복문의 중첩 횟수를 예측하기 어려운 경우
  3. 반복문으로 쓰여진 코드를 더 간결하게 나타내고 싶은 경우

마치며

재귀함수를 사용하는 것 보다 아직은 반복문이 더 익숙하다. 재귀함수를 사용하면 코드가 간결해진다는데 나에게는 아직 간결해진 코드보단 긴 코드가 더 이해하기 쉬운 것 같다.

참고자료 출처

재귀 -위키백과
재귀함수 -마이크로소프트

0개의 댓글