Simple&Natural
꼬리재귀(Tail Recursion) 본문
728x90
피보나치 수열이나 팩토리얼을 구현하다보면 가장 많이 쓰이는 것이 재귀함수이다.
그러나 재귀함수의 경우 필연적으로 메모리 스택을 많이 잡아먹기 때문에
재귀함수를 잘못 쓰다보면 스택오버플로우와 인사하게 된다.
이문제를 해결하기 위해서는 Tail Recursion이라는 꼬리재귀 함수를 사용하면 된다.
재귀함수 경우 마지막 함수가 모두 실행되기 전까지 이전의 함수들이 계속 메모리 스택을 차지하고 있게 되는데
원래 함수로 다시 돌아올 필요가 없는 경우 꼬리재귀 함수를 쓰면 값만 반환한 후 스택에서 사라진다.
728x90
'언어 > Java&Kotlin' 카테고리의 다른 글
computeIfAbsent() vs putIfAbsent() (0) | 2020.03.20 |
---|---|
코틀린의 캡슐화 (0) | 2020.03.19 |
자바에서 hashcode, identityHashcode, equals, == 연산자의 비교 (0) | 2020.03.16 |
for문 조건 (0) | 2020.02.26 |
스코프함수 정리 (0) | 2020.02.25 |