오늘은 알고리즘은 아니지만 재귀함수 에대해 수강하였다.
재귀 함수란?
자기 자신을 호출하는 함수를 말한다. 스택을 이용하는 알고리즘에서 재귀함수를 사용하는 경우가 많으며,
함수형 프로그래밍에선 루프 구현을 재귀로 구현한다.

자바스크립트에서는 재귀함수에서 몇가지 제한이 있는데,
첫번째로 콜 스택에 제한이 있다.
또한 꼬리 재귀 기능이 제공되지않는다. 그래서 이를 통한 성능 구현이 힘들며 성능이 좋지 않다.

재귀를 알아두어야 하는 이유는 재귀로 구현해야 편한 알고리즘이 있기 때문이다.
재귀로 구현하는것이 편하긴하나, 성능이 좋지 않기때문에 코딩테스트에서는 좋은 방법은 아니다.
재귀 함수의 단점으로 무한루프에 걸릴 수 있다는 점 때문에 항상 재귀함수에는 if등으로 중단점을 생성 해준다.

피보나치 수열은 재귀를 설명할 때 자주 접할 수 있는 수열로써, 앞 두 항의 합이 뒤 항의 값이 되는 수열이다.

그에대한 표현은 아래와 같다.
피보나치 라는 함수에 7이라는 인자를 주어줬을 때의 표현방식이다.
아래와같은 로직이 적용되며 if문으로 중단점을 걸어주었기 때문에 fibonacci(2)와 finocacci(1) 아래로는 더 이상 작동하지 않는 모습이다.


'알고리즘 > 알고리즘' 카테고리의 다른 글
| 알고리즘 강의 19일차 - 최소 신장 트리(Kruskal) (0) | 2023.03.30 |
|---|---|
| 알고리즘 강의 18일차 - 최단 경로 알고리즘 (0) | 2023.03.29 |
| 알고리즘 강의 16일차 - 소수 알고리즘 (0) | 2023.03.24 |
| 알고리즘 강의 15일차 - 그리디 기초 (0) | 2023.03.23 |
| 알고리즘 강의 14일차 - BFS, DFS (0) | 2023.03.22 |