LRU를 적용한 프로그래머스 알고리즘 문제
def solution(cacheSize, cities):
answer = 0
count = 0
temp = []
if cacheSize == 0:
answer = len(cities) * 5
else:
for city in cities:
city = city.lower()
if city in temp:
temp.remove(city)
temp.append(city)
count += 1
elif len(temp) < cacheSize:
temp.append(city)
count += 5
else:
temp.remove(temp[0])
temp.append(city)
count += 5
answer = count
return answer
list에서 인덱스를 찾기 위해선 index함수를 사용한다.
a = ["hello", "new", "world"]
print(a.index("hello")) # 0
print(a.index("new")) # 1
print(a.index("world")) # 2
특정 범위에서 인덱스를 찾으려면 범위를 설정해준다.
범위 내에 찾는 문자가 없으면 ValueError를 출력한다.
a = ["hello", "new", "world"]
print(a.index("hello", 0, 1) # 0
print(a.index("new", 1, 3) # 1
print(a.index("world", 0, 1)) # ValueError: 'world' is not in list
ValueError: max() arg is an empty sequence
ValueError: min() arg is an empty sequence
출처 :
LRU 알고리즘