[プログラマー][最初の]キャッシュ-JavaScript
プログラマレベル2-[第1レベル]キャッシュ
📌 問題の説明
📌 と考える
2-1. 都市が存在しない場合はcityarrに都市をプッシュします.
2-2. cityArの長さがcacheSizeより大きい場合は、一番前の都市を削除し、答えを5に増やします.
3-1. 都市が存在する場合は、その都市を配列の最後に移動し、答えを1に増やします.
📌 に答える
function solution(cacheSize, cities) {
let answer = 0;
let cityArr = [];
for (let i = 0; i < cities.length; i++) {
let current = cities[i].toLowerCase();
let findCity = cityArr.find((city) => city === current); // 현재 도시가 cityArr에 존재하는지 확인
if (!findCity) {
// 도시가 존재하지 않는 경우
cityArr.push(current); // cityArr에 push
if (cityArr.length > cacheSize) {
// cityArr의 길이가 cacheSize보다 크면
cityArr.shift(); // 가장 앞쪽의 city를 제거
}
answer += 5; // answer을 5 증가
} else {
// 도시가 존재
cityArr = cityArr.filter((city) => city !== current);
cityArr.push(current); // 해당 도시를 배열의 맨 뒤로 옮긴다
answer++; // answer을 1 증가
}
}
return answer;
}
Reference
この問題について([プログラマー][最初の]キャッシュ-JavaScript), 我々は、より多くの情報をここで見つけました https://velog.io/@tnehd1998/프로그래머스-1차-캐시-JavaScriptテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol