- 난이도: Lv2
프로그래머스 링크: https://school.programmers.co.kr/learn/courses/30/lessons/17680
풀이 링크(GitHub): hayannn/CodingTest_Java/프로그래머스/2/[1차] 캐시
풀이 시간 : 27분
import java.util.*;
class Solution {
public int solution(int cacheSize, String[] cities) {
if (cacheSize == 0) return cities.length * 5;
int answer = 0;
LinkedHashSet<String> cache = new LinkedHashSet<>();
for (String city : cities) {
city = city.toLowerCase();
if (cache.contains(city)) {
cache.remove(city);
answer += 1;
} else {
if (cache.size() == cacheSize) {
Iterator<String> it = cache.iterator();
it.next();
it.remove();
}
answer += 5;
}
cache.add(city);
}
return answer;
}
}