일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- React 고급안내서
- Javascript
- React 18 Nextjs
- context
- background tab
- notFound()
- Render Props
- next13 head
- Nextjs
- getUTCDate
- background setInterval
- Nextjs React 18
- react
- react-helmet
- React18
- 고급안내서
- background setttimeout
- react hook
- CSS
- RTK Query
- Programmers
- Next13
- hook
- Babel
- React 고급 안내서
- background: url
- React 18
- codingtest
- React API 참고서
- React 공식문서
Archives
- Today
- Total
akjfal
[Programmers] [1차] 캐시 본문
// 0 <= cacheSize <= 30
// city <= 100,000 -> only Eng and need make lowercase
// city.length <= 20
// LRU사용
// hit = 1
// miss = 5
// linkedList를 통해 캐시 구현
import java.util.HashMap;
import java.util.LinkedList;
class Solution {
public int solution(int cacheSize, String[] cities) {
int answer = 0;
LinkedList<String> cache = new LinkedList<>();
for(int i = 0; i < cities.length; i++){
String key = cities[i].toLowerCase();
int num = checkCache(cache, key);
cache.addLast(key);
if(num > -1){
cache.remove(num);
answer+=1;
}else{
if(cache.size() <= cacheSize){
answer += 5;
}else{
cache.poll();
answer+= 5;
}
}
}
return answer;
}
public int checkCache(LinkedList<String> list, String check){
int idx = 0;
for(String s : list){
if(check.equals(s))
return idx;
idx++;
}
return -1;
}
}
'알고리즘 > programmers' 카테고리의 다른 글
[Programmers] 방문 길이 (0) | 2021.06.22 |
---|---|
[Programmers] 점프와 순간 이동 (0) | 2021.06.20 |
[Programmers] 이진 변환 반복하기 (0) | 2021.06.19 |
[Programmers] 피보나치 수 (0) | 2021.06.19 |
[Programmers] 최댓값과 최솟값 (0) | 2021.06.19 |
Comments