Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 스크롤이벤트
- extends
- TS
- xlsx-js-style
- Spring
- array
- codepush
- code-push-standalone
- 코드푸시
- async
- set
- 상속
- 슬라이딩윈도우
- generic
- app.post
- 이진탐색
- Next.js
- reactnative
- react
- 페이지네이션
- Filter
- supabase authentication
- 타입스크립트
- interface
- map
- javascript
- meatadata
- supabase 페이지네이션
- 글또10기x코드트리
- supabase auth
Archives
- Today
- Total
rhanziy
재귀함수 본문
재귀함수란 ?
함수 내부에서 자기자신을 호출하는 것.
재귀함수 조건
- Stop condition(base case)
- Recursive case
모든 재귀함수는 스택오버플로우를 방지하기위해 실행을 종료할 base case를 정의해야한다.
재귀단계의 연산을 제대로 설정하지않으면 maximum call stack size exceeded 에러 발생
function drink(x) {
//1. base case
if(x < 1) {
console.log('배불러')
return;
}
//2. recursive case
drink(--x);
}
drink(5);
예제1) 문자열을 뒤집는 함수
function reverse(str){
//base case
if(str == ''){
return ""
} else {
//recursive case
return reverse(str.substr(1)) + str.charAt(0)
}
}
resverse(hello);

예제2) 피보나치 수열
function fib(n){
//base case: n이 0또는 1일때 n을 반환
if(n <= 1){
return n
} else {
// recursive case(이전 두 수의 합 반환)
return fib(n-1) + fib(n-2)
}
}
fib(5);

'Html_css_js' 카테고리의 다른 글
슬라이딩 윈도우 알고리즘 (0) | 2024.09.10 |
---|---|
이진탐색 알고리즘 (1) | 2024.09.10 |
js - jquery 동적으로 생성한 버튼 기능구현(delete) (0) | 2023.09.06 |
js - 선택한 이미지 미리보기 구현 (2) | 2023.09.06 |
TS - interface 쉽게 작성하기(json데이터) (0) | 2023.03.13 |