Programing/Algorithm

LRU Cache (Least Recently Used) / 프로그래머스 캐시

2022. 1. 19. 09:48
반응형

- 사용한지 가장 오래된 페이지를 교체.

- 현 시점에서 가장 오랫동안 사용하지 않은 페이지와 교체.

- 각 페이지마다 계수기를 두어 사용하는 기법

개념설명: https://youtu.be/6wulDqi6z-s

페이지가 교체되는 흐름

 

 

function solution(cacheSize, cities) {
    var cache = [],
        answer = 0,
        cache_idx = 0;
    
    if (cacheSize == 0) return cities.length * 5;
    
    cities.map(city => {
        city = city.toLowerCase();
        cache_idx = cache.indexOf(city);
        
        if (cache_idx > -1)
        {
            cache.splice(cache_idx, 1);
            answer++; // Cache Hit (page change)
        }
        else if (cache.length >= cacheSize)
        {
            cache.shift();
        }
        
        cache.push(city);
    });
    
    return ((cities.length - answer) * 5) + answer;
}
반응형

'Programing > Algorithm' 카테고리의 다른 글

삽입 정렬 (Insertion Sort) 설명과 JavaScript 예제  (0) 2025.05.21
선택 정렬 (Selection Sort) 설명과 JavaScript 예제  (0) 2025.05.21
버블 정렬 (Bubble Sort) 설명과 JavaScript 예제  (0) 2025.05.21
jvascript array 경우의 수 구하기 (permute)  (0) 2022.02.15
콜라츠 추측  (0) 2021.08.27
하샤드의 수 (Harshad Number)  (0) 2021.08.25
덧셈 뺄셈 동적 계산 (dynamic plus minus, Dynamic addition and subtraction)  (0) 2019.07.19
주민등록번호 체계 및 유효성 검사 (javascript)  (2) 2016.10.07
'Programing/Algorithm' 카테고리의 다른 글
  • 버블 정렬 (Bubble Sort) 설명과 JavaScript 예제
  • jvascript array 경우의 수 구하기 (permute)
  • 콜라츠 추측
  • 하샤드의 수 (Harshad Number)
Dongkkase
Dongkkase
개발자로 일하면서 부딪히는 문제풀이가 누군가에게 도움이 되길 바라며
    반응형
  • Dongkkase
    정집사의 개발로그
    Dongkkase
  • 전체
    오늘
    어제
    • All (478) N
      • 금융 (61)
      • Programing (295) N
        • Algorithm (39)
        • API (2)
        • javascript (122)
        • CSS (8)
        • HTML (10)
        • PHP (15)
        • JAVA (27)
        • JSP (17)
        • JSP 예제 (1)
        • IOS (1)
        • Android (1)
        • Sencha Touche (1)
        • bat file, cmd (0)
        • 디버깅 (2)
        • SQL (21) N
        • MS-SQL (1)
        • MySQL (13)
        • 보안 (5)
      • Server (14)
        • Docker (1)
        • Windows (9)
        • Linux (3)
        • jeus (1)
      • Database (6)
      • IT 일반 (15)
      • 리뷰 (38)
        • Book (17)
        • 제품 (2)
        • 영화 소개 (11)
        • 음악 소개 (7)
      • 잡생각 (36)
        • 회고 (3)
        • 컬럼 (4)
        • 자료실 (6)
        • 낙서장 (12)
        • 위시리스트 (2)
        • WOW (1)
        • 덕 (1)
  • 인기 글

  • 최근 댓글

  • 태그

    Java
    php
    iT's MY LiFE
    JavaScript
    디자인패턴
    자바
    It
    위시리스트
    블로그
    자바스크립트
    SQL
    js패턴
    IT 관련
    기초
    사고 싶은 책
    IT블로그
    jsp
    자바스크립트유틸
    IT·컴퓨터
    읽고 싶은 책
Dongkkase
LRU Cache (Least Recently Used) / 프로그래머스 캐시
상단으로

티스토리툴바