[1차] 캐시

LJM·2023년 4월 14일
0

programmers

목록 보기
26/92

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;
    }
}
profile
게임개발자 백엔드개발자

0개의 댓글