seunghyun Note
[프로그래머스] [1차] 캐시 with JS 본문
728x90
반응형
링크 : https://school.programmers.co.kr/learn/courses/30/lessons/17680
문제 풀이
1. LRU 알고리즘을 이해하자 (push & shift)를 사용하기 [정보처리기사에서 본듯..?]
https://dailylifeofdeveloper.tistory.com/355(여기 참고!)
계속해서 틀리는 이유가 무엇일까..?
이유를 생각해보니 값이 있을 경우 따로 저장하지 않고 그냥 shift를 했다.
값이 있다면 따로 저장후 그 값을 push를 해줘야 한다!
function solution(cacheSize, cities) {
let result = 0;
let arr = [];
if (cacheSize === 0) return cities.length * 5;
while (cities.length) {
let shift = cities.shift().toLowerCase();
if (arr.includes(shift)) {
result += 1;
let idx = arr.indexOf(shift);
arr.splice(idx, 1);
arr.push(shift);
} else {
if (arr.length === cacheSize) arr.shift();
arr.push(shift);
result += 5;
}
}
return result;
}
728x90
반응형
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
진료과별 총 예약 횟수 출력하기 with Oracle (0) | 2024.05.07 |
---|---|
중성화 여부 파악하기 with Oracle (0) | 2024.05.07 |
기사단원의 무기 with JS (0) | 2024.02.08 |
[프로그래머스] n^2 배열 자르기 with JS (0) | 2024.01.29 |
[백준] 2164 카드2 with JS (0) | 2024.01.24 |