(Java) 프로그래머스 캐시

2022. 4. 28. 00:26·코딩 테스트

처음에는 Queue로 접근해야 하나 고민했다.

그런데 문제에 캐시 교체 알고리즘이 LRU라고 쓰여있는 걸 보고 처음 보는 알고리즘이라

찾아보니 LinkedList가 기반인 알고리즘이었다.

그래서 조금 더 생각해보니 Queue가 아니라 LinkedList로 구현하는 게 훨씬 쉽겠다 싶었다.

어렵지 않게 작성하여 통과했다.


최종코드

import java.util.LinkedList;
class Solution {
    public int solution(int cacheSize, String[] cities) {
        int answer = 0;
        // cities 값을 소문자로 변환
        for (int i = 0; i < cities.length; i++) {
            cities[i] = cities[i].toLowerCase();
        }
        LinkedList<String> list = new LinkedList<>();
        // 캐시의 사이즈가 0일수도 있다는것을 고려
        for (int i = 0; i < cities.length; i++) {
            if(list.size() > cacheSize) {
                list.removeLast();
            }
            // Hit인경우
            if(list.contains(cities[i])) {
                list.remove(list.indexOf(cities[i]));
                answer++;
            // Miss인경우
            } else {
                answer+=5;
            }
            list.addFirst(cities[i]);
        }
        return answer;
    }
}

'코딩 테스트' 카테고리의 다른 글

(Java) 프로그래머스 피로도  (0) 2022.05.02
(Java) 프로그래머스 뉴스 클러스터링  (0) 2022.04.30
(Java) 프로그래머스 괄호 변환  (0) 2022.03.06
(Java) 프로그래머스 오픈채팅방  (0) 2022.03.03
(Java) 프로그래머스 다리를 지나는 트럭  (0) 2022.01.23
'코딩 테스트' 카테고리의 다른 글
  • (Java) 프로그래머스 피로도
  • (Java) 프로그래머스 뉴스 클러스터링
  • (Java) 프로그래머스 괄호 변환
  • (Java) 프로그래머스 오픈채팅방
로승리
로승리
  • 로승리
    Roy's Blog
    로승리
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Issuefy
      • Language
      • Spring
      • Database
      • Network
      • Kubernetes
      • AWS
      • 코드스쿼드
      • 코딩 테스트
      • 생각정리
      • 국비지원
      • 회고
      • 컨퍼런스, 세미나
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
로승리
(Java) 프로그래머스 캐시
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.