[프로그래머스] LEVEL2 캐시 JAVA

Pixel Dophin·2023년 7월 19일
0

프로그래머스

목록 보기
23/55

캐시

문제링크

풀이

LRU의 개념을 이해하고 풀어야했던 문제이다. 해당 풀이는 LRU 구현 내용을 참고하여 풀었다.

코드

class Solution {
    public int solution(int cacheSize, String[] cities) {
        int answer = 0;
        
        String[] cache = new String[cacheSize];
        
        for (int i = 0; i < cities.length; i++) {
            cities[i] = cities[i].toUpperCase();
        }
        
        for (String x : cities) {
            int pos = -1;
            
            for(int i = 0; i < cache.length; i++) {
                if (cache[i] != null && x.equals(cache[i])) {
                    pos = i;
                }
            }
            
            if (pos == -1) {
                for (int i = cache.length - 1; i >= 1; i--) {
                    cache[i] = cache[i - 1];
                }
                answer += 5;
            }else {
                for (int i = pos; i >=1; i--) {
                    cache[i] = cache[i - 1];
                }
                answer += 1;
            }
            
            if (cacheSize > 0)
                cache[0] = x.toUpperCase();
        }
        
        return answer;
    }
}
profile
안녕 👋 성장하고픈 개발자 💻 입니다

1개의 댓글

comment-user-thumbnail
2023년 7월 19일

유익한 정보를 얻을 수 있어서 기쁩니다.

답글 달기

관련 채용 정보