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
|
import java.util.*;
class Solution {
public int solution(int cacheSize, String[] cities) {
int answer = 0;
String[] newCities = new String[cities.length];
Queue<String> queue = new LinkedList<String>();
for (int i = 0; i < cities.length; i++) {
newCities[i] = cities[i].toUpperCase();
}
for (int i = 0; i < newCities.length; i++) {
if (queue.contains(newCities[i])) {
answer += 1;
queue.remove(newCities[i]);
queue.add(newCities[i]);
} else {
answer += 5;
queue.add(newCities[i]);
if (queue.size() > cacheSize) {
queue.poll();
}
}
}
return answer;
}
}
|
cs |
LRU 알고리즘을 이용한 캐시 관리 문제이다.
Queue를 이용하였다.
'Programmers > Level2' 카테고리의 다른 글
영어 끝말잇기 (0) | 2021.07.25 |
---|---|
가장 큰 정사각형 찾기 (0) | 2021.07.24 |
삼각 달팽이 (0) | 2021.07.24 |
다리를 지나는 트럭 (0) | 2021.07.23 |
멀쩡한 사각형 (0) | 2021.07.23 |