์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- useRef
- REACT
- history api
- ์ฝ๋ฉํ ์คํธ
- Props
- ํ๋ก ํธ์๋
- CSS
- fetch API
- ๋ฐ๋ธ์ฝ์ค3๊ธฐ
- ๋ธ๋ก๊ทธ
- ํ๋ก๊ทธ๋๋จธ์ค
- Gatsby
- float
- ๋ฐ๋ธ์ฝ์ค
- Flex
- ์๊ณ ๋ฆฌ์ฆ
- position
- useEffect
- ์๋ฐ์คํฌ๋ฆฝํธ
- Today
- Total
Daehyunii's Dev-blog
์นด์นด์ค ์บ์ ๋ฌธ์ ๋ณํ(์ฝ์ ์ ๋ ฌ ์์ฉ) ๋ณธ๋ฌธ
์นด์นด์ค ์บ์ ๋ฌธ์ ๋ณํ(์ฝ์ ์ ๋ ฌ ์์ฉ)
Daehyunii 2022. 9. 6. 19:02๋ฌธ์ (์ถ์ฒ : ์ธํ๋ฐ ์๋ฐ์คํฌ๋ฆฝํธ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด ๊ฐ์, ์ ๋ณด์ฌ๋ฆผํผ์๋)
์บ์๋ฉ๋ชจ๋ฆฌ๋ CPU์ ์ฃผ๊ธฐ์ต์ฅ์น(DRAM) ์ฌ์ด์ ๊ณ ์์ ์์ ๋ฉ๋ชจ๋ฆฌ๋ก์ CPU๊ฐ ์ฒ๋ฆฌํ ์์ ์ ์ ์ฅํด ๋์๋ค๊ฐ ํ์ํ ๋ฐ๋ก ์ฌ์ฉํด์ ์ฒ๋ฆฌ์๋๋ฅผ ๋์ด๋ ์ฅ์น์ด๋ค. ์๋ ๋น์ธ๊ณ ์ฉ๋์ด ์์ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํด์ผ ํ๋ค. ์ฒ ์์ ์ปดํจํฐ๋ ์บ์๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ ๊ท์น์ด LRU ์๊ณ ๋ฆฌ์ฆ์ ๋ฐ ๋ฅธ๋ค. LRU ์๊ณ ๋ฆฌ์ฆ์ Least Recently Used ์ ์ฝ์๋ก ์ง์ญํ์๋ฉด ๊ฐ์ฅ ์ต๊ทผ์ ์ฌ์ฉ๋์ง ์ ์ ๊ฒ ์ ๋์ ์๋ฏธ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์บ์์์ ์์ ์ ์ ๊ฑฐํ ๋ ๊ฐ์ฅ ์ค๋ซ๋์ ์ฌ์ฉํ์ง ์์ ๊ฒ์ ์ ๊ฑฐํ๊ฒ ๋ค๋ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค.
๋ง์ฝ์บ์์์ฌ์ด์ฆ๊ฐ5์ด๊ณ ์์ ์ด 2 3 1 6 7 ์์ผ๋ก์ ์ฅ๋์ด์๋ค๋ฉด, (๋งจ ์์ด ๊ฐ์ฅ ์ต๊ทผ์ ์ฐ์ธ ์์ ์ด๊ณ , ๋งจ ๋ค๋ ๊ฐ์ฅ ์ค๋ซ๋์ ์ฐ์ด์ง ์์ ์์ ์ด๋ค.)
1) Cache Miss : ํด์ผํ ์์ ์ด ์บ์์ ์๋ ์ํ๋ก ์ ์ํ์์ ๋ง์ฝ ์๋ก์ด ์์ ์ธ 5๋ฒ ์ ์ ์ CPU๊ฐ ์ฌ์ฉํ๋ค๋ฉด Cache miss๊ฐ ๋๊ณ ๋ชจ๋ ์์ ์ด ๋ค๋ก ๋ฐ๋ฆฌ๊ณ 5๋ฒ์์ ์ ์บ์์ ๋งจ
์์์์นํ๋ค. 5 2 3 1 6 (7๋ฒ์์
์์บ์์์์ญ์ ๋๋ค.)
2) Cache Hit : ํด์ผํ ์์
์ด ์บ์์ ์๋ ์ํ๋ก ์ ์ํ์์ ๋ง์ฝ 3๋ฒ ์์
์ CPU๊ฐ ์ฌ์ฉ
ํ๋ค๋ฉด Cache Hit๊ฐ ๋๊ณ , 63๋ฒ ์์ ์๋ 5, 2๋ฒ ์์ ์ ํ ์นธ ๋ค๋ก ๋ฐ๋ฆฌ๊ณ , 3๋ฒ์ด ๋งจ ์์ผ
๋ก ์์นํ๊ฒ ๋๋ค. 5 2 3 1 6 ---> 3 5 2 1 6
์บ์์ ํฌ๊ธฐ๊ฐ ์ฃผ์ด์ง๊ณ , ์บ์๊ฐ ๋น์ด์๋ ์ํ์์ N๊ฐ์ ์์ ์ CPU๊ฐ ์ฐจ๋ก๋ก ์ฒ๋ฆฌํ๋ค๋ฉด N๊ฐ์ ์์ ์ ์ฒ๋ฆฌํ ํ ์บ์๋ฉ๋ชจ๋ฆฌ์ ์ํ๋ฅผ ๊ฐ์ฅ ์ต๊ทผ ์ฌ์ฉ๋ ์์ ๋ถํฐ ์ฐจ๋ก๋๋ก ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์.
โฃ ์
๋ ฅ์ค๋ช
์ฒซ ๋ฒ์งธ ์ค์ ์บ์์ ํฌ๊ธฐ์ธ S(3<=S<=10)์ ์์
์ ๊ฐ์ N(5<=N<=1,000)์ด ์
๋ ฅ๋๋ค. ๋ ๋ฒ์งธ ์ค์ N๊ฐ์ ์์
๋ฒํธ๊ฐ ์ฒ๋ฆฌ์์ผ๋ก ์ฃผ์ด์ง๋ค. ์์
๋ฒํธ๋ 1 ~100 ์ด๋ค.
โฃ ์ถ๋ ฅ์ค๋ช
๋ง์ง๋ง ์์
ํ ์บ์๋ฉ๋ชจ๋ฆฌ์ ์ํ๋ฅผ ๊ฐ์ฅ ์ต๊ทผ ์ฌ์ฉ๋ ์์
๋ถํฐ ์ฐจ๋ก๋ก ์ถ๋ ฅํฉ๋๋ค.
โฃ ์ ๋ ฅ์์ 1
5 9
1 2 3 2 6 2 3 5 7
โฃ ์ถ๋ ฅ์์ 1
7 5 3 2 6
[์บ์ ๋ฉ๋ชจ๋ฆฌ ์ํ ๋ณํ]
10000
21000
32100
23100
62310
26310
32610
53261
75326
Tip
๋ฌธ์ ํ์ด
//๊ฐ์ ๋ฃ๊ณ ๋ด๊ฐ ๋ค์ ์์ฑํ ๋ต
function solution(cacheSize, arr){
let cacheMemory = Array.from({length : cacheSize}, (v)=>0);
arr.forEach(element =>{
let pos = -1;
for(let i = 0 ; i < cacheSize ; i++){
if(cacheMemory[i] === element) pos = i;
}
if(pos === -1){
for(let i = cacheMemory.length - 1 ; i >= 1 ; i--){
cacheMemory[i] = cacheMemory[i-1];
}
}else{
for(let i = pos ; i >= 1 ; i--){
cacheMemory[i] = cacheMemory[i-1];
}
}
cacheMemory[0] = element;
})
return cacheMemory;
}
let arr3=[1, 2, 3, 2, 6, 2, 3, 5, 7, 1];
console.log(solution(5, arr3));
'๐ Language & CS knowledge > Algorithm (๊ธฐ์ด๋ฌธ์ ํ์ด)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ขํ ์ ๋ ฌ (0) | 2022.09.06 |
---|---|
์ฅ๋๊พธ๋ฌ๊ธฐ ํ์(์ ๋ ฌ) (0) | 2022.09.06 |
์ฝ์ ์ ๋ ฌ (0) | 2022.09.06 |
๋ฒ๋ธ ์ ๋ ฌ ์์ฉ (0) | 2022.09.06 |
๋ฒ๋ธ ์ ๋ ฌ (0) | 2022.09.06 |