본문 바로가기
반응형

클로저함수2

메모이제이션 Memoization 메모이제이션이란 프로그래밍을 할 때 반복되는 결과를 메모리에 저장해서 다음에 같은 결과가 나올 때 빨리 실행하는 코딩 기법을 말한다. 클로저를 사용해서 유지되는 저장공간을 이용해 함수를 반복적으로 수행할 때 함수 내부의 실행횟수를 줄일 수 있다. 메모이제이션을 사용해서 팩토리얼 함수 구현 let factorial = (function() { let save = {}; let fact = function(number) { if (number > 0) { let saved = save[number - 1] || fact(number - 1); let result = number * saved; save[number] = result; console.log(saved, result); return result.. 2020. 10. 14.
클로저를 이용한 피보나치 수열을 리턴하는 메서드 출력할 때 마다 피보나치수열을 차례로 리턴해야 함 클로저의 정의나 특징은 알고 있었으나, 문제에서 파라미터가 정의되지 않았다는 점과 function을 리턴해야 한다는 점이 초기 접근자체를 어렵게 했다. 내가 여태 배운것 중 가장 이해도가 낮다고 생각하는 고차함수의 개념을 이용해야하기 때문에 더 힘들었던 것 같다. 실마리는 검색에서 찾았다. 클로저를 이용해서 함수를 리턴하며 실행하는 방법과 클로저 함수(내부함수)를 이용할 때 내부함수엔 얼마든 파라미터를 써도 된다는 점을 알게되자 조금씩 생각의 가닥이 잡히는 느낌이었다. 우선 몇번 풀어봤던 피보나치 수열의 값을 리턴하는 클로저 함수를 작성했다. let fibo = function(n){ if(n 2020. 10. 12.
반응형