본문 바로가기

Programmers/Level2

[1차] 캐시

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