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
- 이진탐색
- 리액트네이티브아이콘
- Filter
- interface
- async
- 상속
- reactnative
- 안드로이드빌드에러
- extends
- javascript
- generic
- 배열중복요소제거
- Next.js
- app.post
- 스크롤이벤트
- set
- 슬라이딩윈도우
- supabase 페이지네이션
- Spring
- array
- materialicons
- 타입스크립트
- 글또10기
- meatadata
- map
- react
- 페이지네이션
- TS
- app:compiledebugkotlin
- mainapplication.kt
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 |
---|---|
이진탐색 알고리즘 (0) | 2024.09.10 |
js - jquery 동적으로 생성한 버튼 기능구현(delete) (0) | 2023.09.06 |
js - 선택한 이미지 미리보기 구현 (2) | 2023.09.06 |
TS - interface 쉽게 작성하기(json데이터) (0) | 2023.03.13 |
Comments