1. ๋ฌธ์ ์ค๋ช
์บ์ ํฌ๊ธฐ์ ๋์์ด๋ฆ๋ค์ด input์ผ๋ก ์ฃผ์ด์ง๊ณ , ์ ๋ ฅ๋ ๋์์ด๋ฆ ๋ฐฐ์ด์ ์์๋๋ก ์ฒ๋ฆฌํ ๋, "์ด ์คํ์๊ฐ"์ ์ถ๋ ฅํ๋ค.
2. LRU ์๊ณ ๋ฆฌ์ฆ์ด๋?
์บ์๋ฅผ ๋์ฒดํ๋ ๋ฐฉ๋ฒ ์ค ํ๋
์ด์์ฒด์ ์์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ์ํ ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ ์ค ํ๋
Least Recently Used Algorithm
→ ๋ป : ์ต๊ทผ์ ๊ฐ์ฅ ์ ๊ฒ ์ด
→ ์ต๊ทผ์ ๊ฐ์ฅ ์ ๊ฒ ์ด๊ฑด ๋ฒ๋ฆฌ๊ณ , ์๋ก๋์จ ์์ดํ ์ ๋ฃ๊ณ , ์ด๋ฐ ๋ฐฉ์์ผ๋ก ์บ์๋ฅผ ์ด์ํ๋ ๊ต์ฒด ์ ๋ต ์๊ณ ๋ฆฌ์ฆ
3. ์ฝ๋
def solution(cacheSize, cities):
cache = []
time = 0
for city in cities:
city = city.lower() #๋์์ด๋ฆ์ ๋์๋ฌธ์ ๊ตฌ๋ถ x
if city in cache:
time +=1
cache.remove(city) #๊ธฐ์กด ์บ์ ์ ๊ฑฐ
cache.append(city) #์๋กญ๊ฒ ์บ์ ๋ฃ์ด์ค
else:
time +=5
if cacheSize!=0:
if len(cache) >= cacheSize: #์๋ก์ด ์บ์๋ฅผ ๋ฃ์ ์ ์๋ ์ํฉ์ด๋ผ๋ฉด
cache.pop(0) #๊ฐ์ฅ ์ค๋๋ ์์ดํ
์ญ์
cache.append(city) #์ด๋ฒ์ ๋ฃ์ด์ผํ ์์ดํ
์ ์บ์์ ์ถ๊ฐ
return time
'Algorithm > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] [1์ฐจ] ๋น๋ฐ์ง๋ (Python) (0) | 2022.01.02 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ์ซ์ ๋ฌธ์์ด๊ณผ ์๋จ์ด (Python) (0) | 2021.12.26 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ฌ์ฐ๊ฒฐํ๊ธฐ - Python (0) | 2021.06.22 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ฐ - Python (0) | 2021.06.22 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ฉ์ฉกํ ์ฌ๊ฐํ - Python (1) | 2021.06.02 |