
-Code
import java.util.*;
class Solution {
public int solution(int cacheSize, String[] cities) {
int answer = 0;
Deque<String> cache = new ArrayDeque<>();
for (int i = 0; i < cities.length; i++) {
// 대소문자를 통일 시키기
String city = cities[i].toLowerCase();
if (cache.contains(city)) {
// 포함되어 있으면 + 1
answer++;
// 최신화를 위한 해당값 제거
cache.remove(city);
} else {
// 캐시에 없으면 + 5
answer += 5;
}
cache.addLast(city);
// 캐시 사이즈 보다 덱이 더크면 앞에값 빼기
if (cache.size() > cacheSize) {
cache.pollFirst();
}
}
return answer;
}
}
캐시에 포함되면 해당 값을 삭제하고 최신화해야 하는 부분을 빼먹고 풀어서 틀렸었습니다.
'Beakjoon&프로그래머스 > Java' 카테고리의 다른 글
| [프로그래머스/Java] 이중우선순위큐 (0) | 2026.01.18 |
|---|---|
| [백준/Java] 21736번 헌내기는 친구가 필요해 (0) | 2026.01.18 |
| [백준/Java] 34200번 장애물 (0) | 2026.01.18 |
| [백준/Java] 3273번 두 수의 합 (0) | 2026.01.17 |
| [백준/Java] 2565번 전깃줄 (0) | 2026.01.17 |