https://school.programmers.co.kr/learn/courses/30/lessons/17680
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
난이도: level2
소요시간: 20분, 10분만에 구현하고 제출하였으나 빠뜨린 케이스가 있어 55점을 맞았다. 다시 수정후 제출하여 100점을 맞았다.
아래는 나의 코드이고 그 밑에는 예시 코드인데 deque의 maxlen 기능을 사용하면 코드를 줄일수 있다.
#20:05 level2
from collections import deque
def solution(cacheSize, cities):
time=0
cache=deque({})
cities_deq=deque(cities)
while cities_deq:
city = cities_deq.popleft()
city=city.lower()
if city in cache:
time+=1
cache.remove(city)
cache.append(city)
else:
time+=5
if len(cache)<cacheSize:
cache.append(city)
elif cacheSize==0:
pass
else:
cache.popleft()
cache.append(city)
return time
def solution(cacheSize, cities):
import collections
cache = collections.deque(maxlen=cacheSize)
time = 0
for i in cities:
s = i.lower()
if s in cache:
cache.remove(s)
cache.append(s)
time += 1
else:
cache.append(s)
time += 5
return time
'Problem Solving > 자료구조' 카테고리의 다른 글
BOJ1406 에디터(리스트 이터레이터문제) *R (0) | 2024.03.06 |
---|---|
BOJ1158 요세푸스 문제 (0) | 2024.03.06 |
카카오 신고 결과 받기 (0) | 2023.05.04 |
Kakao2018 뉴스 클러스터링 (0) | 2023.04.13 |