728x90
๋ฐ์ํ
https://school.programmers.co.kr/learn/courses/30/lessons/17680
ํ๋ก๊ทธ๋๋จธ์ค ๋ ๋ฒจ 2.
์บ์ ์ ์ฅ๊ณต๊ฐ์ ๊ตฌํํ๋ ๋จ์ ๊ตฌํ ๋ฌธ์ ์ด๋ค.
์บ์ ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ์ LRU(Least Recently Used)์ด๋ฏ๋ก, ์ต๊ทผ ์ฌ์ฉํ๋ ์์๋ฅผ ๊ธฐ์ตํด์ฃผ์ด์ผ ํ๋ค.
๋ฐ๋ผ์, ์บ์ ๋ฐฐ์ด์ ๊ฐ์ฅ ์ต๊ทผ ์ฌ์ฉํ ๊ฒ์ 1๋ก,
๋๋จธ์ง ๊ฒ๋ค์ ํด๋น ์์น์ ๊ฐ์ 1์ฉ ๋ํด์ฃผ์๋ค.
์ฃผ์ํ ์ ์ ๋์๋ฌธ์ ๊ตฌ๋ถ์ ์์ ์ผ ํ๋ค๋ ๊ฒ! ๋์ ๊ฒฝ์ฐ๋ js๋ผ์ toLowerCase ํจ์๋ฅผ ์ฌ์ฉํ๋ค.
๋์ ํ์ด
function solution(cacheSize, cities) {
var answer = 0;
let cache = new Array(cacheSize).fill(["",0]);
cities.forEach(city=>{
city = city.toLowerCase();
let idx = -1;
// ์บ์์์ ์ฐพ๊ธฐ
for(let i=0; i<cacheSize; ++i){
if(cache[i][0] == city){
idx = i;
break;
}
}
// ์บ์ hit
if(idx>=0) {
answer += 1;
for(let i=0; i<cacheSize; ++i){
if(i==idx) cache[idx] = [city, 1]; // ๊ฐ์ฅ ์ต๊ทผ ์ฌ์ฉ = 1
else cache[i][1] += 1;
}
}
// ์บ์ miss
else {
answer += 5;
let deleteIdx = 0;
let maxValue = 0;
for(let i=0; i<cacheSize; ++i){
if(cache[i][1]==0){
deleteIdx = i;
break;
}
if(maxValue < cache[i][1]){
maxValue = cache[i][1];
deleteIdx = i;
}
}
cache[deleteIdx] = [city,1];
for(let i=0; i<cacheSize; ++i){
if(i==deleteIdx || cache[i][1]==0) continue;
cache[i][1] += 1;
}
}
})
return answer;
}
728x90
๋ฐ์ํ
'๐ ์๊ณ ๋ฆฌ์ฆ > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C++/PGS] Lv.2 : ๋กค์ผ์ดํฌ ์๋ฅด๊ธฐ (0) | 2025.05.14 |
---|---|
[C++/PGS] Lv.2 : ํํ (2019 ์นด์นด์ค) (0) | 2025.05.14 |
[Javascript/PGS] Lv.3 : ํ ํธ์ง (์ฐ๊ฒฐ๋ฆฌ์คํธ) (1) | 2025.05.14 |
[Javascript/PGS] Lv.3 : ์ธ์ฌ๊ณ ๊ณผ (0) | 2025.05.09 |
[MySQL/PGS] Lv.3 : ์ค๋ ๊ธฐ๊ฐ ๋ณดํธํ ๋๋ฌผ(2) (0) | 2025.05.09 |