def solution(cacheSize, cities):
num = 5*cacheSize
lst= []
for i in cities:
lst.append(i.lower())
try:
for i in range(30):
if lst[i+cacheSize] in lst[i:i+cacheSize]:
num += 1
else:
num += 5
except:
return num
테스트 8까지는 맞는데 이후는 다 틀린 답.
def solution(cacheSize, cities):
if cacheSize == 0:
return 5*len(cities)
lst1 = []
for i in cities:
lst1.append(i.lower())
lst2 = lst1[0:cacheSize]
num = 5*cacheSize
try:
for i in range(30):
if lst1[i+cacheSize] in lst2:
num += 1
lst2.remove(lst1[i+cacheSize])
lst2.append(lst1[i+cacheSize])
else:
num += 5
del lst2[0]
lst2.append(lst1[i+cacheSize])
except:
return num
9, 17번을 추가로 맞췄지만...
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
deque.append(x)
: 오른쪽 끝에 x 추가.deque.appendleft(x)
: 왼쪽 끝에 x 추가.deque.pop()
: 오른쪽에서 요소를 제거하고 반환.deque.popleft()
: 왼쪽에서 요소를 제거하고 반환.deque.extend(iterable)
: 배열(iterable)을 순환하면서 데크의 오른쪽에 추가.deque.extendleft(iterable)
: 배열(iterable)을 순환하면서 데크의 왼쪽에 추가.deque.remove(x)
: x를 찾아 삭제.deque.rotate(num)
: 데크를 num만큼 회전(양수면 오른쪽, 음수면 왼쪽).[참고 사이트][collections — 컨테이너 데이터형 — Python 3.10.7 문서](https://docs.python.org/ko/3/library/collections.html#deque-objects)
Python - 데크(deque) 언제, 왜 사용해야 하는가?