끄적끄적
프로그래머스 lv2 [캐시] 본문
출처 : https://programmers.co.kr/learn/courses/30/lessons/17680
코딩테스트 연습 - [1차] 캐시
3 ["Jeju", "Pangyo", "Seoul", "NewYork", "LA", "Jeju", "Pangyo", "Seoul", "NewYork", "LA"] 50 3 ["Jeju", "Pangyo", "Seoul", "Jeju", "Pangyo", "Seoul", "Jeju", "Pangyo", "Seoul"] 21 2 ["Jeju", "Pangyo", "Seoul", "NewYork", "LA", "SanFrancisco", "Seoul", "Ro
programmers.co.kr
1. c++
- LRU
hit일 경우 해당 데이터가 들어있던 index를 삭제하고, 맨 뒤에 다시 추가
miss일 경우 cache.size()가 cacheSize와 동일하다면 맨 앞 index를 지우고, 새로운 원소 추가
- 캐시크기가 0일 때 예외 처리
앞에서 예외처리해주지 않으면, cache.erase(cache.begin()) 부분에서 원소가 없으므로 segmentation fault 오류 발생
- cache.erase(cache.begin() + i)
cache.begin() + i => 맨 앞 원소로부터 i번째에 있는 원소 삭제
- toupper, tolower
문자를 대문자, 소문자로 바꿔주는 함수. char형에만 적용되므로(string으로는 안됨) cities 문자열에 각 문자로 접근하여 각각 적용시켜줘야 한다.
2. python
deque를 이용해서 풀었다.
도시이름은 대소문자 구분을 따로 하지 않는다고 했으므로 다 소문자로 바꾸어서 넣어준다.
도시 이름이 dq에 있으면 +1을, 없으면 +5를 해준다.
또한 도시 이름이 dq에 있으면 해당 도시를 제거하고, dq가 꽉찼을 경우 도시 이름이 없다면 맨 앞의 도시를 제거해준 후
동일하게 현재 도시 이름을 dq에 추가해줌.
'코테준비 > 프로그래머스' 카테고리의 다른 글
프로그래머스 lv3 [N-Queen] (0) | 2022.10.13 |
---|---|
프로그래머스 lv1 [문자열 내 마음대로 정렬하기] (0) | 2022.10.12 |
프로그래머스 lv1 [비밀지도] - 비트연산자 (0) | 2022.04.12 |
프로그래머스 lv1 [다트 게임] (0) | 2022.04.10 |
프로그래머스 lv2 [위장] C++, python - 해시 (0) | 2022.03.23 |