꼬리물기 재귀함수 2

재귀함수 -> 꼬리물기 재귀함수 -> 반복문

재귀함수를 꼬리 재귀 함수로 변환하고, 그 다음 반복문으로 변환하는 것은 재귀 호출을 명시적인 반복 구조로 바꾸는 과정입니다. 꼬리 재귀는 함수의 마지막 작업이 자기 자신을 호출하는 형태로, 이론적으로는 반복문으로 쉽게 변환할 수 있습니다.꼬리 재귀를 반복문으로 바꾸는 이유는 스택오버플로우 때문입니다.그렇게 때문에 꼬리재귀함수 와 반복문간의 코드 변환은 자유자재로 할수 있어야 합니다.재귀함수 문제 중에서 다른 문제로는 다음과 같은 것들이 있습니다.https://www.youtube.com/watch?v=h80tLv0fn88&list=PLBNdLLaRx_rKOFzA3txlG5rf9ZaVUuvmv&index=210분정도 후 부터 tail recursion 보시면 됩니다. 1. 피보나치 수열피보나치 수열은 각..

알고리즘 2024.08.20

[es6] 배열의 합 (꼬리물기 재귀함수 <--> for문으로 변경)

아래 두개의 코드는 두 가지 다른 방법으로 배열의 합을 계산하는 두 가지 함수를 포함하고 있습니다. 하나는 꼬리물기재귀(tail recursion)를 사용하고 다른 하나는 for 루프를 사용합니다. 각 함수와 코드 블록에 대한 설명은 다음과 같습니다: 꼬리물기 재귀함수 const _sum = (arr, i, acc) => i > -1 ? _sum(arr, i-1, acc = acc + arr[i]) : acc; const sum = (arr) => _sum(arr, arr.length-1, 0); console.log('꼬리물기재귀 : '+ sum([1,2,3,4])); _sum 함수는 재귀 함수로, 배열 arr, 현재 인덱스 i, 및 합산기 acc를 받습니다. 재귀적으로 배열을 합산하며, i가 -1보다..

프로그래밍/Js 2023.10.17