알고리즘/프로그래머스
[1차] 캐시
베리영young
2025. 3. 2. 23:13
사용 알고리즘: 자료구조-큐
사용 언어: java
import java.util.*;
class Solution {
Queue<String> cache = new ArrayDeque<>();
public int solution(int cacheSize, String[] cities) {
if(cacheSize == 0) {
return 5 * cities.length;
}
int answer = 0;
for(String city : cities) {
city = city.toUpperCase();
if(cache.size() == 0) {
cache.add(city);
answer += 5;
}
else {
if(cache.contains(city)) {
cache.remove(city);
cache.add(city);
answer += 1;
}
else {
if(cache.size() == cacheSize) {
cache.poll();
cache.add(city);
answer += 5;
}
else {
cache.add(city);
answer += 5;
}
}
}
}
System.out.println(cache);
return answer;
}
}
처음엔 queue.poll()을 사용해서 비교했음...
그렇게 하면 중간에 city와 같은 값이 나와도 찾을 수 없는데 왜 그렇게 논리를 짰는지 알 수 없음...
쉬운 문제라고 생각해서 너무 방심한 거 같다.