Git: https://github.com/Tarte12/CodingTest_KUT/commit/e68fda5151652234e219b0ad8b71960f58579609
for city in cities:
city = city.lower()
→ 이건 cities 자체가 바뀌지 않음. 새 리스트를 만들어야 한다.
cities = [c.lower() for c in cities]
list.pop(x)는 인덱스를 받으므로 => 값으로 쓰면 IndexErrorlist.remove(value)cacheSize=0이면 캐시가 아예 없으므로 항상 미스(+5)if cacheSize == 0:
return 5 * len(cities)
lru)를 따로 둠“오래된 → 최신” 순서 관리if city in space: # 히트
time += 1
space.remove(city)
space.append(city) # 맨 뒤로 → 최신
else: # 미스
time += 5
if len(space) == cacheSize:
space.pop(0) # 가장 오래된 것 제거
space.append(city) # 새로운 것 추가
pop, remove, append처럼 리스트의 메서드 차이를 제대로 이해하지 못하면 불필요한 디버깅 시간을 낭비한다.