[leetcode] 2623. Memoize

2025. 4. 7. 16:03·알고리즘/코딩테스트

 

 

 

  • 문제분석

주어진 함수의 결과를 캐시에 저장하고, 같은 입력에 대해서는 다시 계산하지 않고 저장된 결과를 반환하도록 하는 것이다.

  • 알고리즘 설계
  1. 캐시 저장소 만들기
  2. 함수 호출횟수 추적
  3. 함수의 입력을 문자열로 변환

fn이 호출될대마다 캐시에서 결과를 찾아 있으면 반환

없으면 실제 함수를 호출하고 결과를 캐시에 저장한다.

 

  • 구현
/**
 * @param {Function} fn
 * @return {Function}
 */
function memoize(fn) {
    const cache = new Map();

    return function(...args) {
        const key = args.toString();
        if (cache.has(key)) {
            return cache.get(key);
        } else {
            const result = fn (...args);
            cache.set(key, result);
            return result
        }
    }
}

/** 
 * let callCount = 0;
 * const memoizedFn = memoize(function (a, b) {
 *	 callCount += 1;
 *   return a + b;
 * })
 * memoizedFn(2, 3) // 5
 * memoizedFn(2, 3) // 5
 * console.log(callCount) // 1 
 */

'알고리즘 > 코딩테스트' 카테고리의 다른 글

[dfs 기본 문제] dfs 로 모든경우의 수 + - 로 더하기  (2) 2025.08.25
[프로그래머스] 큰수 만들기  (2) 2025.08.14
코딩 테스트를 준비하기 전에  (5) 2025.07.27
[프로그래머스] 이진 변환 반복하기  (2) 2025.07.25
[leetcode] 11. Container With Most Water  (0) 2025.05.07
'알고리즘/코딩테스트' 카테고리의 다른 글
  • [프로그래머스] 큰수 만들기
  • 코딩 테스트를 준비하기 전에
  • [프로그래머스] 이진 변환 반복하기
  • [leetcode] 11. Container With Most Water
윤랩용
윤랩용
정리하고 내것으로만들기
  • 윤랩용
    yunrap 개발블로그
    윤랩용
  • 전체
    오늘
    어제
    • 분류 전체보기 (104)
      • 알고리즘 (17)
        • 알고리즘유형 (5)
        • 코딩테스트 (7)
      • 네트워크 (3)
      • 언어 (14)
        • HTML (0)
        • CSS (1)
        • Javascript (9)
        • Java (1)
        • 용어 (3)
      • Backend (1)
        • Spring (1)
      • FrontEnd (12)
        • React (9)
        • Next.js (0)
        • 성능 및 전략 (1)
        • LAB(실험실) (1)
      • 프로젝트 (1)
      • 자기개발 (2)
        • motivation (1)
      • STUDY (45)
        • 모던자바스크립트 DeepDive (22)
        • 인사이드 자바스크립트 (2)
        • CS 기술 면접스터디 (10)
      • 요즘 FE TREND 뭘까? (1)
  • 공지사항

    • 블로그를 새롭게 활성화시키겠습니다.
  • 최근 글

  • 인기 글

  • 태그

    커뮤니티기반
    코딩하기전설계
    이터레이터객체
    캡슐화
    Set 배열변환
    dom 노드 배열변환
    목표완수
    __proto__
    클로저
    해쉬맵 0(1)
    create react app
    즉시실행함수
    Map 배열변환
    유사배열객체 배열 변환
    원시타입
    iterator 배열변환
    var키워드
    온루틴
    map.entries()
    접근자프로퍼티
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.0
윤랩용
[leetcode] 2623. Memoize
상단으로

티스토리툴바