https://school.programmers.co.kr/learn/courses/30/lessons/17680
cacheSize 가 0 인경우를 생각못하고 한참 고민했다;; 예제 샘플에 있는데도 불구하고;;
어떤 컬렉션을 사용해야 할지 고민했다 첨에는 PriorityQueue 로 구현해봤는데 이미 있는것의 우선순위 갱신할때 막혀서 ArrayList 로 바꿨다
import java.util.*;
class Solution
{
public int solution(int cacheSize, String[] cities)
{
int answer = 0;
ArrayList<String> list = new ArrayList<>();
int turn = 0;
for(String ele : cities)
{
String lower = ele.toLowerCase();
if(list.contains(lower))
{
answer += 1;
list.remove(lower);
list.add(lower);
//System.out.println(turn + "," + 1);
}
else
{
//System.out.println(turn + "," + 5);
if(0 < cacheSize)
{
if(list.size() == cacheSize)
{
System.out.println(list.size());
list.remove(list.get(0));
}
list.add(lower);
}
answer += 5;
}
turn++;
}
return answer;
}
}