티스토리 뷰

백준 문제

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 알고리즘에서 주어지는 것은 캐시의 크기이다.

캐시의 크기가 허용하는 만큼, 가장 최근에 들어온 자료는 뒤에 추가해준다.

만약 캐시의 크기가 꽉차면, 가장 오래된 것을 제거해주고, 새로운 것을 추가해준다.

여기서 주의할 것은, 이미 캐시 안에 있는 것이 또 들어올 경우인데, 이때에는 캐시에서 기존의 것을 제거하고, 새로 들어온 것을 뒤에 추가해주면 된다.

사용하는 자료구조는 mapqueue로 충분하다.(아무튼 유동적으로 추가/삭제 되면 상관 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
링크
«   2025/04   »
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
글 보관함