프로그래머스 - 캐시

J-Keonho·2020년 9월 8일
0

해당 알고리즘 자료는 제가 직접 푼 것도 있지만 다른 분들의 풀이과의 비교를 통해 더 나은 알고리즘을 공부하기 위해 정리한 것들입니다.

프로그래머스 - 캐시

https://programmers.co.kr/learn/courses/30/lessons/17680#

풀이 : Queue를 이용하여 LRU 알고리즘 설계

import java.util.*;
class Solution {
  public int solution(int cacheSize, String [] cities) {
      LinkedList <String> qu = new LinkedList<String>();
		int ans = 0;
		for (int i = 0; i < cities.length; i++) {
			if(!qu.contains(cities[i].toLowerCase())) {
				ans +=5;
				qu.add(cities[i].toLowerCase());
			}else {
				ans += 1;
				qu.remove(cities[i].toLowerCase());
				qu.add(cities[i].toLowerCase());
			}
			if(qu.size() > cacheSize) qu.poll();
		}
        return ans;
    }
}
profile
안녕하세요.

0개의 댓글