코딩 테스트 공부/프로그래머스

[ JAVA ] 프로그래머스 - [1차] 캐시

따갓 2022. 6. 27. 15:01

https://programmers.co.kr/learn/courses/30/lessons/17680

 

코딩테스트 연습 - [1차] 캐시

3 ["Jeju", "Pangyo", "Seoul", "NewYork", "LA", "Jeju", "Pangyo", "Seoul", "NewYork", "LA"] 50 3 ["Jeju", "Pangyo", "Seoul", "Jeju", "Pangyo", "Seoul", "Jeju", "Pangyo", "Seoul"] 21 2 ["Jeju", "Pangyo", "Seoul", "NewYork", "LA", "SanFrancisco", "Seoul", "Ro

programmers.co.kr

 

 

import java.util.*;
class Solution {
    public int solution(int cacheSize, String[] cities) {
        List<String> cache = new ArrayList<>();                
        int answer = 0;
        
        for( int i = 0 ; i < cities.length ; i++ ){
            String city = cities[i].toUpperCase();            
            if( cache.size() < cacheSize ) {
                if( cache.indexOf( city ) != -1 ){
                    cache.add( cache.remove( cache.indexOf(city) ) );
                    answer++;
                } else {
                    cache.add( city );
                    answer += 5 ;
                }
            } else {
                if( cache.indexOf( city ) != -1 ){
                    cache.add( cache.remove( cache.indexOf(city) ) );
                    answer++;
                } else {
                    cache.add( city );
                    cache.remove(0);                    
                    answer += 5 ;
                }
            }    
       }
        return answer;
    }
}