kakao_캐시
Cache Size만큼 돌면서 HashMap에 채워 나간다. Hit라면 +5 하한다. Cache 가 가득 차면 하나를 줄인다.
import java.util.*;
class Solution {
public int solution(int cacheSize, String[] cities) {
int answer = 0;
LinkedHashMap<String,Boolean> hm = new LinkedHashMap<>();
if(cacheSize == 0){
return cities.length*5;
}
int cnt = 1;
for(int i=0; i<cities.length; i++){
cities[i]=cities[i].toLowerCase();
if(hm.containsKey(cities[i])){
for(String key : hm.keySet()){
if(cities[i].equals(key)){
hm.remove(key);
break;
//발생이슈 :
//LRU 알고리즘 : 가장 오래된 페이지를 죽이고 새로 띄운다.
//이미 캐싱된 페이지도 마찬가지로 죽이고 새로 띄운다.
//?? 잘못생각한 것, cnt 개수를 캐시사이즈 만큼 쓴것
//<Template, Template>
}
}
answer+=1;
//System.out.println(cities[i]);
}
else
{
if(cacheSize ==hm.size())
{
for(String key : hm.keySet()){
hm.remove(key);
break;
}
}
answer+=5;
}
hm.put(cities[i],true);
// for(String key : hm.keySet())
// System.out.print(key+" ");
// System.out.println();
}
//System.out.println(answer);
return answer;
}
}
'알고리즘' 카테고리의 다른 글
kakao_튜플 (0) | 2021.12.06 |
---|---|
kakao_n진수 게임 (0) | 2021.12.05 |
백준_새로운게임2 (0) | 2021.08.13 |
프로그래머스_디스크컨트롤러 (0) | 2021.08.13 |
프로그래머스_실패율 (0) | 2021.08.13 |
댓글
이 글 공유하기
다른 글
-
kakao_튜플
kakao_튜플
2021.12.06 -
kakao_n진수 게임
kakao_n진수 게임
2021.12.05 -
백준_새로운게임2
백준_새로운게임2
2021.08.13 -
프로그래머스_디스크컨트롤러
프로그래머스_디스크컨트롤러
2021.08.13