본문 바로가기
Beakjoon&프로그래머스/Java

[프로그래머스/Java] [1차] 캐시

by 현장 2026. 1. 18.

-Code

import java.util.*;

class Solution {
    public int solution(int cacheSize, String[] cities) {
        int answer = 0;
        Deque<String> cache = new ArrayDeque<>();
        for (int i = 0; i < cities.length; i++) {
            // 대소문자를 통일 시키기
            String city = cities[i].toLowerCase();
            
            if (cache.contains(city)) {
                // 포함되어 있으면 + 1
                answer++;
                // 최신화를 위한 해당값 제거
                cache.remove(city);
            } else {
                // 캐시에 없으면 + 5
                answer += 5;
            }
            cache.addLast(city);
            // 캐시 사이즈 보다 덱이 더크면 앞에값 빼기
            if (cache.size() > cacheSize) {
                cache.pollFirst();
            }
        }
        return answer;
    }
}

캐시에 포함되면 해당 값을 삭제하고 최신화해야 하는 부분을 빼먹고 풀어서 틀렸었습니다.