File tree Expand file tree Collapse file tree 1 file changed +27
-0
lines changed
Expand file tree Collapse file tree 1 file changed +27
-0
lines changed Original file line number Diff line number Diff line change 1+ from collections import deque
2+
3+ def solution (cacheSize , cities ):
4+ totalTime = 0
5+ cache = deque ([])
6+ '''
7+ 전체적인 과정은 FIFO로 수행된다.
8+ 만약 이미 존재하는 도시라면 맨 뒤로 다시 보낸다.
9+ '''
10+
11+ for i in range (len (cities )):
12+ city = cities [i ].lower () # 대소문자 구분 없으므로 cities를 lowercase로 바꾸기
13+ if cacheSize == 0 : # cacheSize가 0인 경우에 대한 예외처리(TC 7, 17)
14+ totalTime += 5
15+ continue # 그 후 바로 빠져나옴
16+ if city in cache : # 캐시에 도시가 이미 존재하는 경우
17+ cache .remove (city )
18+ cache .append (city )
19+ totalTime += 1 # cache hit
20+ else :
21+ if len (cache ) == cacheSize and cacheSize > 0 : # 캐시가 가득찼다면, 맨 앞에 하나 버린다. 이때 cacheSize가 0인 경우도 있다. 이때는 popleft하면 에러가 나므로 cacheSize가 0이상인 경우만 처리되도록 한다.
22+ cache .popleft ()
23+ cache .append (city )
24+ totalTime += 5 # cache miss
25+
26+
27+ return totalTime
You can’t perform that action at this time.
0 commit comments