โ ๋ฌธ์
๐๏ธ ์์ด๋์ด
1. ์บ์ ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ์ธ LRU๋ฅผ ๊ตฌํํ๊ธฐ ์ํด deque๋ฅผ ์ฌ์ฉํ๋ค.
2. ๋์ ์ด๋ฆ์ ํ๋์ฉ ๊ฐ์ ธ์จ๋ค.
a. ๋ง์ฝ deque์์ ์์ผ๋ฉด(hit) ์ ๊ฑฐ ํ time += 1
b. deque์์ ์์ผ๋ฉด(miss) ๊ฐ์ฅ ์ผ์ชฝ ์์ ์ ๊ฑฐ ํ time += 1 (LRU๊ฐ ๊ฐ์ฅ ์ค๋๋ ์์๋ฅผ ์ ๊ฑฐํ๊ธฐ ๋๋ฌธ)
3. ํด๋น ๋์๋ฅผ ํ์ ๋ฃ์ด์ค๋ค.
** cache๊ฐ 0์ธ ๊ฒฝ์ฐ ์์ธ ์ฒ๋ฆฌ๊ฐ ํ์ํจ. -> hit์ธ ๊ฒฝ์ฐ๊ฐ ์๊ธฐ ๋๋ฌธ์ city๊ฐ์ * 5๋ฅผ ๋ฆฌํดํ๋ค.
๐ป ํ์ด
from collections import deque
def solution(cacheSize, cities):
if cacheSize == 0:
return len(cities) * 5
time = 0
cache = deque([0 for i in range(cacheSize)])
for city in cities:
city = city.lower()
if city in cache:
cache.remove(city)
time += 1
else:
cache.popleft()
time += 5
cache.append(city)
return time
'Algorithm | Language > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[programmers/Lv.2] ์ฃผ์ฐจ ์๊ธ ๊ณ์ฐ (1) | 2023.03.10 |
---|---|
[programmers/Lv.2] ํผ์์ ํ๋ ํฑํํ (1) | 2023.03.06 |
[programmers/Lv.2] ํ์ผ๋ช ์ ๋ ฌ (0) | 2023.02.23 |
[programmers/Lv.2] ํผ๋ก๋ (0) | 2023.02.23 |
[programmers/Lv.2] ๋ ๋ฐ๋จน๊ธฐ (0) | 2023.02.23 |