해당 알고리즘 자료는 제가 직접 푼 것도 있지만 다른 분들의 풀이과의 비교를 통해 더 나은 알고리즘을 공부하기 위해 정리한 것들입니다.
https://programmers.co.kr/learn/courses/30/lessons/17680#
풀이 : Queue를 이용하여 LRU 알고리즘 설계
import java.util.*;
class Solution {
public int solution(int cacheSize, String [] cities) {
LinkedList <String> qu = new LinkedList<String>();
int ans = 0;
for (int i = 0; i < cities.length; i++) {
if(!qu.contains(cities[i].toLowerCase())) {
ans +=5;
qu.add(cities[i].toLowerCase());
}else {
ans += 1;
qu.remove(cities[i].toLowerCase());
qu.add(cities[i].toLowerCase());
}
if(qu.size() > cacheSize) qu.poll();
}
return ans;
}
}