[TIL - 재귀 2022.8.19]

Jeong Ha Seung·2022년 8월 19일
1

부트캠프

목록 보기
32/51
post-thumbnail

오늘 공부한 내용

재귀함수는 자기 자신을 호출하는 함수로써 반복적인 작업을 해야할 때 효율적으로 코드로 풀어낼 수 있다.

arrSum 함수로 배열의 합을 구하는 과정을 생각해보면

배열을 쪼갤수록 문제는 점점 작아질 것이다.

arrSum([1, 2, 3, 4, 5]) === 1 + arrSum([2, 3, 4, 5])
arrSum([2, 3, 4, 5]) === 2 + arrSum([3, 4, 5])
...

이런식으로 과정을 쭉 거치다보면 빈 배열이 나오는 순간이 있을것이다. 빈 배열의 합은 어차피 0이므로 0을 리턴해주면 된다.

이런 단순한 함수에서는 크게 상관은 없지만,

좀 더 복잡한 로직에서, 주의할 점은

이런식으로 에러가 발생하는 경우가 있는데 base case(탈출 조건)를 잘 설정해주는 게 중요하다.

재귀는 언제 사용하는게 좋은가?

주로 중첩된 반복문이 많거나 반복문의 중첩 횟수를 예측할 수 없을 때 사용한다.
근데 내가 for문 대신에 재귀를 잘 쓸 수 있을까..?

느낀 점

오늘 코플릿에서 재귀 문제를 풀었는데 막판 2개가 어려운..건 아니었는데 생각의 전환이 필요한듯한 문제여서 좀 고생했다..

profile
블로그 이전했습니다. https://nextjs-blog-haseungdev.vercel.app/

0개의 댓글