티스토리 뷰

2018 KAKAO BLIND RECRUITMENT :: 2018 카카오 블라인드 채용 1차 코딩 테스트 :: 캐시


출처 : https://programmers.co.kr/learn/courses/30/lessons/17680#


#include <string>

#include <vector>


using namespace std;


inline bool check(string s1, string s2) { 

if (s1.size() != s2.size()) return false;

for (int i = 0; i < s1.size();i++) {

char tmp = ((s2.at(i) > 90) ? (s2.at(i) - 32) : (s2.at(i) + 32));

if (!(s1.at(i) == s2.at(i) || s1.at(i) == tmp)) return false;

}

return true;

}


int solution(int cacheSize, vector<string> cities) {

int answer = 0;


vector<string> cache;

if (cacheSize == 0) answer = 5 * cities.size();

else {

for (int i = 0; i < cities.size(); i++) {

bool flag = false;

for (int j = 0; j < cache.size(); j++) {

if (check(cache[j], cities[i])) {

cache.erase(cache.begin() + j);

cache.push_back(cities[i]);

answer += 1; flag = true; break;

}

}

if (!flag) {

if (cache.size() < cacheSize) cache.erase(cache.begin());

answer += 5;

cache.push_back(cities[i]);

}

}

}

return answer;

}


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함