728x90
# 재귀함수
-자기자신을 호출하는 함수
- 잘 활용하면 반복적인 작업을 해야하는 문제를 좀더 간결한 코드로 풀어낼수있다.
-모든 재귀함수는 반복문으로 표현할수있다. 그러나 재귀를 적용할수있는 대부분의 경우에는 재귀를 적용한 코드가 더욱 간결하고 이해하기 쉽다.
1.문제를 좀 더 작게 쪼갠다.
2.문제가 더는 작아지지 않을때까지 가장 작은 단위로 문제를 쪼갠다.
3. 가장 작은 단위의 문제를 풂으로써 전체 문제를 해결한다.
#언제 사용하는게 좋을까?
-주어진 문제를 비슷한 구조의 더 작은 문제로 나눌수있는경우
-중첩된 반복문이 많거나 반복문의 중첩 횟수를 예측하기 어려운 경우
function recursive(input1, input2, ...) {
// base case : 문제를 더 이상 쪼갤 수 없는 경우
// => base case: 재귀의기초, 재귀의 탈출조건(멈추는조건)
if (문제를 더 이상 쪼갤 수 없을 경우) {
return 단순한 문제의 해답;
}
// recursive case : 그렇지 않은 경우
return 더 작은 문제로 새롭게 정의된 문제
}
5! = 5 * 4 * 3 * 2 * 1
= 5 * 4!
= 5 * 4 * 3!
function fac(n) {
if(n === 1) {
return 1;
}
return n * fac(n-1);
}
728x90
'부트캠프교육중 > JavaScript' 카테고리의 다른 글
정규표현식 (0) | 2023.03.29 |
---|---|
JSON (0) | 2023.02.15 |
undefined와 null 차이 (0) | 2023.01.22 |
Axios (0) | 2023.01.19 |
Fetch API (0) | 2023.01.19 |