티스토리 뷰
백준 문제
https://www.acmicpc.net/problem/4568
4568번: LRU Caching
For each data set you should output the line "Simulation S", where S is 1 for the first data set, 2 for the second data set, etc. Then for each exclamation mark in the data set you should output the contents of the cache on one line as a sequence of charac
www.acmicpc.net
LRU(Least Rescently Used ) Algorithm
가장 오래전에 추가된 것은 캐시에서 제거하자는게 핵심 아이디어이다.
LRU 알고리즘에서 주어지는 것은 캐시의 크기이다.
캐시의 크기가 허용하는 만큼, 가장 최근에 들어온 자료는 뒤에 추가해준다.
만약 캐시의 크기가 꽉차면, 가장 오래된 것을 제거해주고, 새로운 것을 추가해준다.
여기서 주의할 것은, 이미 캐시 안에 있는 것이 또 들어올 경우인데, 이때에는 캐시에서 기존의 것을 제거하고, 새로 들어온 것을 뒤에 추가해주면 된다.
사용하는 자료구조는 map과 queue로 충분하다.(아무튼 유동적으로 추가/삭제 되면 상관 X)
자료가 캐시에 존재하는지 빠르게 확인하기 위해 map을 사용하고, 추가/삭제를 쉽게 해주기 위해 queue를 사용한다.
소스 코드 링크 : 깃허브
프로그래머스 스킬 체크 레벨2에서 2017 카카오 코테 문제 3번이 나왔는데, 해당 문제가 LRU를 사용한 것이었다.
'Problem Solving' 카테고리의 다른 글
BOJ 2623 : 음악 프로그램 (0) | 2020.08.24 |
---|---|
BOJ 17828 : 문자열 화폐 (0) | 2020.08.24 |
BOJ 18866 : 젊은 날의 생이여 (0) | 2020.08.23 |
AOJ BRACKETS2 (0) | 2019.07.21 |
BOJ 10769 : 행복한지 슬픈지 (0) | 2019.07.21 |
- Total
- Today
- Yesterday
- Til
- 삽질
- 프로그래머스
- 그리디
- factory_pattern
- django test
- 힙
- 백준
- SSL
- SQL
- endl을절대쓰지마
- 파이썬
- Event Sourcing
- Javascript
- django testcase
- 위상정렬
- requests
- 이것도모르면바보
- cipher suite
- 최대한 간략화하기
- Remote
- 불필요한 값 무시하기
- jwt
- 스택
- vscode
- docker-compose update
- BOJ
- Python
- 우선순위큐
- 코딩테스트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |