๐์ง์ ๋ฌธ์ ํ๋ฌ๊ฐ๊ธฐ
์ ๋ ฅ
- ์บ์ํฌ๊ธฐ n๊ณผ ๋์์ด๋ฆ ๋ฐฐ์ด cities๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค.
- 0 <= n <= 30
- cities.length <= 100,000
- ๊ฐ ๋์์ด๋ฆ์ ์๋ฌธ์๋ก๋ง ์ด๋ค์ ธ์๊ณ , ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์๋๋ค.
์ถ๋ ฅ
- ๋์์ด๋ฆ ๋ฐฐ์ด์ ์์๋๋ก ์ฒ๋ฆฌํ ๋ ํ์ํ ์ด ์คํ์๊ฐ์ ๋ฐํํ๋ค.
์กฐ๊ฑด
- ์บ์ ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ์ฅ ์ต๊ทผ์ ์ฐธ์กฐ๋ ํ์ด์ง๋ฅผ ์บ์์ ๋ด๊ณ ์๋ LRU(Least Recently Used)๋ฅผ ์ฌ์ฉ.
- cache hit ์ผ ๊ฒฝ์ฐ ์คํ์๊ฐ์ 1
- cache miss ์ผ ๊ฒฝ์ฐ ์คํ์๊ฐ์ 5
๋ฌธ์ ํ์ด
m = cities.length
n = 0 <= cache.size <= 30
์๊ฐ๋ณต์ก๋: O(nm) = O(m)
๊ณต๊ฐ๋ณต์ก๋: O(n) = O(1)
๋ฌธ์ ์์ n์ด 30์ดํ๋ก ์ ํ๋์ด์์ด์ ์์ ์ทจ๊ธ ํ ์ ์์ง๋ง, ๋ง์ฝ n์ ํฌ๊ธฐ๊ฐ ์ต์ ํ๊ฐ ํ์ํ ๋งํผ ํฌ๊ฑฐ๋ ํฌ๊ธฐ์ ์ ํ์ด ์๋ค๋ฉด ์บ์ฌ๋ฅผ ๋ฐฐ์ด์ด ์๋ ์งํฉ์ผ๋ก ๊ตฌํํ๋๊ฒ ํจ์ฌ ํจ์จ์ ์ด๊ธฐ ๋๋ฌธ์ ์งํฉ์ผ๋ก ๋ค์ ๊ตฌํํด๋ณด์๋ค.
m = cities.length
n = 0 <= cache.size <= 30
์๊ฐ๋ณต์ก๋: O(m)
๊ณต๊ฐ๋ณต์ก๋: O(n) = O(1)