LRU(Least Recently Used) ์บ์ ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ์ด๋?
LRU(Least Recently Used)๋ ์ปดํจํฐ ์์คํ ์์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์ ์บ์ ๊ต์ฒด๋ฅผ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ๊ธฐ ์ํ ์บ์ ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค.
์ด ์๊ณ ๋ฆฌ์ฆ์ ์บ์์์ ๋ฐ์ดํฐ๋ฅผ ๊ต์ฒดํด์ผ ํ ๋, ๊ฐ์ฅ ์ค๋ซ๋์ ์ฌ์ฉ๋์ง ์์ ๋ฐ์ดํฐ๋ฅผ ์ ๊ฑฐํ๋ ๋ฐฉ์์ผ๋ก ๋์ํฉ๋๋ค.
LRU ์๊ณ ๋ฆฌ์ฆ ๋์ ์๋ฆฌ
- ์บ์๋ ํ์ ๋ ํฌ๊ธฐ๋ง ๊ฐ์ง๊ณ ์์ด์, ์๋ก์ด ๋ฐ์ดํฐ๊ฐ ๋ค์ด์ฌ ๋ ์บ์์ ๊ณต๊ฐ์ด ๋ถ์กฑํ๋ฉด ๊ธฐ์กด ๋ฐ์ดํฐ๋ฅผ ์ ๊ฑฐํด์ผ ํฉ๋๋ค.
- LRU๋ "๊ฐ์ฅ ์ต๋์ ์ฌ์ฉ๋" ๋ฐ์ดํฐ๋ฅผ ์ฐ์ ์ ์ผ๋ก ์ ์งํ๊ณ , ๊ฐ์ฅ ์ค๋ซ๋์ ์ฌ์ฉ๋์ง ์์ ๋ฐ์ดํฐ๋ฅผ ์ ๊ฑฐํ๋ ๋ฐฉ์์ ๋๋ค.
- ์ฆ, ๋ฐ์ดํฐ๋ฅผ ์บ์์ ์ ๊ทผํ ๋๋ง๋ค ํด๋น ๋ฐ์ดํฐ๋ฅผ "๊ฐ์ฅ ์ต๊ทผ์ ์ฌ์ฉ๋" ์ํ๋ก ๊ฐฑ์ ํ๊ณ , ์๋ก์ด ๋ฐ์ดํฐ๊ฐ ๋ค์ด์ฌ ๋๋ ๊ฐ์ฅ ์ค๋๋ ๋ฐ์ดํฐ๋ฅผ ์ ๊ฑฐํฉ๋๋ค.
์์
๋ค์์ LRU ์๊ณ ๋ฆฌ์ฆ์ด ์ด๋ป๊ฒ ๋์ํ๋์ง ์บ์ ํฌ๊ธฐ๊ฐ 3์ธ ๊ฒฝ์ฐ๋ก ์๋ฅผ ๋ค์ด ์ค๋ช ํ๊ฒ ์ต๋๋ค.
์ ๋ ฅ ์์ฒญ: ["A", "B", "C", "D", "B", "A", "E", "F", "B"]
- "A" ์์ฒญ:
- ์บ์: []
- "A"๊ฐ ์บ์์ ์์ผ๋ฏ๋ก ์บ์ ๋ฏธ์ค ๋ฐ์.
- "A"๋ฅผ ์บ์์ ์ถ๊ฐ.
- ์บ์ ์ํ: [A]
- "B" ์์ฒญ:
- ์บ์: [A]
- "B"๊ฐ ์บ์์ ์์ผ๋ฏ๋ก ์บ์ ๋ฏธ์ค ๋ฐ์.
- "B"๋ฅผ ์บ์์ ์ถ๊ฐ.
- ์บ์ ์ํ: [A, B]
- "C" ์์ฒญ:
- ์บ์: [A, B]
- "C"๊ฐ ์บ์์ ์์ผ๋ฏ๋ก ์บ์ ๋ฏธ์ค ๋ฐ์.
- "C"๋ฅผ ์บ์์ ์ถ๊ฐ.
- ์บ์ ์ํ: [A, B, C]
- "D" ์์ฒญ:
- ์บ์: [A, B, C]
- "D"๊ฐ ์บ์์ ์์ผ๋ฏ๋ก ์บ์ ๋ฏธ์ค ๋ฐ์.
- ์บ์๊ฐ ๊ฐ๋ ์ฐผ์ผ๋ฏ๋ก **LRU์ ์ํด ๊ฐ์ฅ ์ค๋๋ "A"**๋ฅผ ์ ๊ฑฐ.
- "D"๋ฅผ ์บ์์ ์ถ๊ฐ.
- ์บ์ ์ํ: [B, C, D]
- "B" ์์ฒญ:
- ์บ์: [B, C, D]
- "B"๋ ์ด๋ฏธ ์บ์์ ์์ผ๋ฏ๋ก ์บ์ ํํธ ๋ฐ์.
- "B"๋ ์ต๊ทผ์ ์ฌ์ฉ๋์์ผ๋ฏ๋ก, ์บ์ ๋ด์์ ๊ฐ์ฅ ์ต๊ทผ์ผ๋ก ๊ฐฑ์ .
- ์บ์ ์ํ: [C, D, B]
- "A" ์์ฒญ:
- ์บ์: [C, D, B]
- "A"๊ฐ ์บ์์ ์์ผ๋ฏ๋ก ์บ์ ๋ฏธ์ค ๋ฐ์.
- ์บ์๊ฐ ๊ฐ๋ ์ฐผ์ผ๋ฏ๋ก **LRU์ ์ํด ๊ฐ์ฅ ์ค๋๋ "C"**๋ฅผ ์ ๊ฑฐ.
- "A"๋ฅผ ์บ์์ ์ถ๊ฐ.
- ์บ์ ์ํ: [D, B, A]
- "E" ์์ฒญ:
- ์บ์: [D, B, A]
- "E"๊ฐ ์บ์์ ์์ผ๋ฏ๋ก ์บ์ ๋ฏธ์ค ๋ฐ์.
- ์บ์๊ฐ ๊ฐ๋ ์ฐผ์ผ๋ฏ๋ก **LRU์ ์ํด ๊ฐ์ฅ ์ค๋๋ "D"**๋ฅผ ์ ๊ฑฐ.
- "E"๋ฅผ ์บ์์ ์ถ๊ฐ.
- ์บ์ ์ํ: [B, A, E]
- "F" ์์ฒญ:
- ์บ์: [B, A, E]
- "F"๊ฐ ์บ์์ ์์ผ๋ฏ๋ก ์บ์ ๋ฏธ์ค ๋ฐ์.
- ์บ์๊ฐ ๊ฐ๋ ์ฐผ์ผ๋ฏ๋ก **LRU์ ์ํด ๊ฐ์ฅ ์ค๋๋ "B"**๋ฅผ ์ ๊ฑฐ.
- "F"๋ฅผ ์บ์์ ์ถ๊ฐ.
- ์บ์ ์ํ: [A, E, F]
- "B" ์์ฒญ:
- ์บ์: [A, E, F]
- "B"๊ฐ ์บ์์ ์์ผ๋ฏ๋ก ์บ์ ๋ฏธ์ค ๋ฐ์.
- ์บ์๊ฐ ๊ฐ๋ ์ฐผ์ผ๋ฏ๋ก **LRU์ ์ํด ๊ฐ์ฅ ์ค๋๋ "A"**๋ฅผ ์ ๊ฑฐ.
- "B"๋ฅผ ์บ์์ ์ถ๊ฐ.
- ์บ์ ์ํ: [E, F, B]
Problem Solving ์์
https://jay-din.tistory.com/359
[ํ๋ก๊ทธ๋๋จธ์ค 2018 KAKAO BLIND RECRUITMENT] [1์ฐจ] ์บ์(Lv.1) - ํ์ด์ฌ(Python)
๋ฌธ์ https://school.programmers.co.kr/learn/courses/30/lessons/17680 ํ๋ก๊ทธ๋๋จธ์ค์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์
jay-din.tistory.com