Notice
Recent Posts
Recent Comments
Link
«   2025/03   »
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
Tags
more
Archives
Today
Total
관리 메뉴

끄적끄적

프로그래머스 lv2 [캐시] 본문

코테준비/프로그래머스

프로그래머스 lv2 [캐시]

alstj_성공 2022. 4. 12. 21:42

출처 : 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에 추가해줌.