๋ฌธ์
์ฝ๋
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(int cacheSize, vector<string> cities) {
int answer = 0;
vector<string>cache, v;
for(string city:cities){
v.push_back(city);
}
for(int i=0; i<v.size(); i++){
for(int k=0; k<v[i].length(); k++){
if(isupper(v[i][k])) v[i][k]+=32; //๋๋ฌธ์๋ฉด์ ์๋ฌธ์๋ก ๋ณ๊ฒฝ
}
}
for(string city:v){
if(cacheSize==0) answer+=5;
else if(find(cache.begin(), cache.end(), city)==cache.end()){ // ํ์ฌ ์บ์์ ์์ ๋
answer+=5; // ์คํ์๊ฐ ๊ฐฑ์
if(cache.size()==cacheSize){
cache.erase(cache.begin()); // ๊ฐ์ฅ ์๋ ์ ์ฐ์ธ ์บ์ ์ญ์
cache.push_back(city);
}
else if(cache.size()<cacheSize){ // //์บ์๊ฐ ํ์ฌ ๋ค ์ฐจ์ง ์์์ ๋
cache.push_back(city); // ์บ์์ ์ถ๊ฐ
}
}
else{ // ํ์ฌ ์บ์์ ์์ ๋
answer+=1; // ์คํ์๊ฐ ๊ฐฑ์
int cache_index = find(cache.begin(), cache.end(), city) - cache.begin();
cache.erase(cache.begin()+cache_index);
cache.push_back(city); //์บ์ ๊ฐฑ์
}
}
return answer;
}
ํ์ด
์ด์์ฒด์ ๊ณต๋ถํ LRU ์๊ณ ๋ฆฌ์ฆ์ด ๋์์ ๋๋์ด ์๋ก์ ์ต๋๋ค. LRU ์๊ณ ๋ฆฌ์ฆ์ ๋ํด์ ๋ชจ๋ฅด์๋ ๋ถ์ ์กฐ๊ธ ํค๋งค์ จ์ ๊ฑฐ๋ผ ์๊ฐํฉ๋๋ค.
'Algorithm ๐ง๐ปโ๐ป > ํ๋ก๊ทธ๋๋จธ์ค(Programmers)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[c++] ํ๋ก๊ทธ๋๋จธ์ค - ํคํจ๋ ๋๋ฅด๊ธฐ(Level 1) (0) | 2022.04.10 |
---|---|
[c++] ํ๋ก๊ทธ๋๋จธ์ค - ์ ๊ณ ๊ฒฐ๊ณผ ๋ฐ๊ธฐ(Level 1) (0) | 2022.04.08 |
[c++] ํ๋ก๊ทธ๋๋จธ์ค - ํ๋ ฌ ํ ๋๋ฆฌ ํ์ ํ๊ธฐ(Level 2) (0) | 2022.04.08 |
[c++] ํ๋ก๊ทธ๋๋จธ์ค - ํ๋ฆฐํฐ(Level 2) (0) | 2022.03.23 |
[c++] ํ๋ก๊ทธ๋๋จธ์ค - ์ผ๊ฐ ๋ฌํฝ์ด(Level 2) (0) | 2022.03.14 |
[c++] ํ๋ก๊ทธ๋๋จธ์ค - ํผ๋ก๋(Level 2) (0) | 2022.03.04 |
๋๊ธ