Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Archives
Today
Total
관리 메뉴

csct3434

[level 2] [1차] 캐시 - 17680 본문

프로그래머스

[level 2] [1차] 캐시 - 17680

csct3434 2024. 2. 28. 20:00

문제 링크

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

import java.util.Stack;

class Solution {

    public int solution(int cacheSize, String[] cities) {
       if (cacheSize == 0) {
          return 5 * cities.length;
       }
       
       int answer = 0;

       Stack<String> stack = new Stack<>();

       for (String city : cities) {
          city = city.toLowerCase();

          int index = stack.search(city);
          if (index == -1) {
             answer += 5;
             if (stack.size() == cacheSize) {
                stack.remove(0);
             }
          } else {
             answer += 1;
             stack.remove(stack.size() - index);
          }
          stack.push(city);
       }

       return answer;
    }
}