여름의 서재
[프로그래머스] 2018 KAKAO BLIND RECRUITMENT_캐시 (Python) 본문
728x90
📕 문제
https://programmers.co.kr/learn/courses/30/lessons/17680
💡 풀이법
1. 캐시를 총 길이가 cachesize인 deque으로 만든다.
2. 만약 캐시가 0이라면 무조건 모든 도시가 캐시 미스이므로 cities의 길이 X 5 를 리턴한다.
2. cities 리스트를 돌면서 city를 모두 소문자로 바꾼후 만약 시티가 캐시 안에 들어있지 않다면 캐시에 가장 들어온지 오래된 city 를 popleft를 해서 빼내고 캐시미스이므로 시간에 5를 더한후 city를 캐시에 넣는다.
3. 만약 캐시 안에 city가 있다면 그 city를 맨 뒤로 당겨야하므로 기존에 있던 city는 remove로 없애주고 다시 city에 담는다. 시간은 1을 더해준다.
from collections import deque
def solution(cacheSize, cities):
if cacheSize == 0:
return len(cities)*5
answer = 0
cache = deque([0] * cacheSize)
for city in cities:
city = city.lower()
if city not in cache:
cache.popleft()
answer += 5
else:
cache.remove(city)
answer += 1
cache.append(city)
return answer
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 삼각 달팽이 (Python) (0) | 2022.02.28 |
---|---|
[프로그래머스] 단속카메라 (Python) (0) | 2022.02.27 |
[프로그래머스] 광고 삽입 (Python) (0) | 2022.02.27 |
[프로그래머스] 징검다리 건너기 (Python) (0) | 2022.02.27 |
[프로그래머스] 주차 요금 계산 (파이썬) (0) | 2022.02.06 |
Comments