백엔드
보통
코딩
LRU 캐시 구현
Least Recently Used 캐시를 구현하세요
30분
100점
120개 테스트케이스
#3666
문제 설명
LRU(Least Recently Used) 캐시를 구현하세요.
동작 방식
- 용량(capacity)이 정해진 캐시
- get(key): 키가 있으면 값 반환, 없으면 -1
- put(key, value): 키-값 저장, 용량 초과시 가장 오래된 항목 제거
- get, put 모두 O(1) 시간 복잡도
힌트
해시맵 + 이중 연결 리스트 조합 사용
예제
cache = LRUCache(2)
cache.put(1, 1)
cache.put(2, 2)
cache.get(1) // 1 반환
cache.put(3, 3) // 2 제거됨 (가장 오래된)
cache.get(2) // -1 반환 예제 테스트케이스
예제 1
입력
8 39 -201 311 734 -583 -202 957 -227
출력
828
예제 2
입력
6 114 -84 737 -388 19 898
출력
1296
예제 3
입력
28 -986 -173 17 -547 -409 -522 477 14 937 749 102 -508 -116 -585 256 -225 -534 487 -982 -570 -142 -872 457 -964 -23 -209 -437 933
출력
-4375
힌트
문제를 잘 읽고 접근하세요
예제를 먼저 손으로 풀어보세요
실행 버튼을 눌러 코드를 실행하세요.