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

sundays·2022년 9월 16일
0

문제

[1차] 캐시

풀이

LRU 라서 또 큐로 풀어주고 테스트케이스는 모두 통과했지만 제출하여 틀림

	/**
     * 총 실행시간
     * 
     * @param cacheSize 캐시크기 (0~30)
     * @param cities    도시이름 (최대 100,000개)
     * @return 실행시간
     */
    public static int solution(int cacheSize, String[] cities) {
        int answer = 0;
        Queue<String> q = new LinkedList<>();
        for (String city : cities) {
            city = city.toLowerCase();
            if (cacheSize <= 0) {
                answer += 5;
            } else if (q.size() < cacheSize) {
                q.offer(city);
                answer += 5;
            } else if (q.size() == cacheSize) {
                if (q.contains(city)) {
                    answer++;
                } else {
                    q.remove();
                    q.offer(city);
                    answer += 5;
                }
            }
        }
        return answer;
    }

이 코드에서도 내가 실수 한 점이 있다
큐에서 이미 도시를 포함하고 있을때 이전에 큐에 내용에 있던 도시는 지우고 다시 입력을 해야한다는 점이다

			if (q.contains(city)) { // cache hit
                q.remove(city);
                q.add(city);
                answer++;
            }

전체 코드

전체 코드

profile
develop life

0개의 댓글