[프로그래머스] [1차] 캐시 - JavaScript
프로그래머스 Level 2 - [1차] 캐시
- 문제 분류 : 2018 카카오 블라인드 채용
- 문제 출처 : 프로그래머스 Level 2 - [1차] 캐시
📌 문제 설명
📌 생각한 풀이 방법
- 현재 도시가 cityArr에 존재하는지 확인한다.
2-1. 도시가 존재하지 않는 경우 도시를 cityArr에 push한다.
2-2. cityArr의 길이가 cacheSize보다 크면 가장 앞쪽의 city를 제거한 후 answer을 5 증가시킨다.
3-1. 도시가 존재하면 해당 도시를 배열의 맨 뒤로 옮긴 후 answer을 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;
}
Author And Source
이 문제에 관하여([프로그래머스] [1차] 캐시 - JavaScript), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@tnehd1998/프로그래머스-1차-캐시-JavaScript저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)