728x90
https://programmers.co.kr/learn/courses/30/lessons/17680
// 코드
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
32
33
34
35
36
37
38
39
40
41
|
import java.util.*;
import java.util.Map.Entry;
/*
1. 키 : 실행시간 으로 관리한다.
2. add전 검색 후 해당 단어가 없으면 실행시간 - 5, 있으면 실행시간 - 1
3. 맨 처음 요소를 제거
4. 마지막에 모두 제거
*/
class Solution {
public int solution(int cacheSize, String[] cities) {
int answer = 0;
List<String> cache = new ArrayList<>();
for(String beforeCity : cities) {
String city = beforeCity.toLowerCase();
if(cache.contains(city)) {
//도시 이름을 참조했으므로, 다시 맨뒤로 보낸다.
cache.remove(city);
cache.add(city);
answer += 1;
} else if(cache.size() < cacheSize) {
cache.add(city);
answer += 5;
} else {
if(cacheSize > 0) {
cache.remove(0);
cache.add(city);
}
answer += 5;
}
}
return answer;
}
}
|
cs |
반응형
'CS > 알고리즘_KAKAO BLIND RECRUITMENT' 카테고리의 다른 글
2019 KAKAO BLIND RECRUITMENT : 실패율 (0) | 2021.10.19 |
---|---|
2020 KAKAO BLIND RECRUITMENT : 가사 검색 (0) | 2021.10.18 |
2020 KAKAO BLIND RECRUITMENT : 외벽 점검(리뷰 필요) (0) | 2021.10.14 |
2021 KAKAO BLIND RECRUITMENT : 카드 짝 맞추기(리뷰 필요) (0) | 2021.10.13 |
2018 KAKAO BLIND RECRUITMENT : [3차] 압축 (0) | 2021.10.12 |