๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก๐Ÿ“š Language & CS knowledge/Algorithm (๊ธฐ์ดˆ๋ฌธ์ œํ’€์ด) (74)

Daehyunii's Dev-blog

๊ฒฐํ˜ผ์‹(ํƒ์š• ์•Œ๊ณ ๋ฆฌ์ฆ˜)

๋ฌธ์ œ(์ถœ์ฒ˜ : ์ธํ”„๋Ÿฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด ๊ฐ•์˜, ์ •๋ณด์˜ฌ๋ฆผํ”ผ์•„๋“œ) ํ˜„์ˆ˜๋Š” ๋‹ค์Œ ๋‹ฌ์— ๊ฒฐํ˜ผ์„ ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์ˆ˜๋Š” ๊ฒฐํ˜ผ์‹ ํ”ผ๋กœ์—ฐ์„ ์žฅ์†Œ๋ฅผ ๋นŒ๋ ค 3์ผ๊ฐ„ ์‰ฌ์ง€ ์•Š๊ณ  ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ํ”ผ๋กœ์—ฐ์— ์ฐธ์„ํ•˜๋Š” ์นœ๊ตฌ๋“ค N๋ช…์˜ ์ฐธ์„ํ•˜๋Š” ์‹œ๊ฐ„์ •๋ณด๋ฅผ ํ˜„์ˆ˜๋Š” ์นœ๊ตฌ๋“ค์—๊ฒŒ ๋ฏธ๋ฆฌ ์š”๊ตฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์นœ๊ตฌ๋“ค์€ ์ž์‹ ์ด ๋ช‡ ์‹œ์— ๋„์ฐฉํ•ด์„œ ๋ช‡ ์‹œ์— ๋– ๋‚  ๊ฒƒ์ธ์ง€ ํ˜„์ˆ˜์—๊ฒŒ ์•Œ๋ ค์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. ํ˜„์ˆ˜๋Š” ์ด ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ํ”ผ๋กœ์—ฐ ์žฅ์†Œ์— ๋™์‹œ์— ์กด์žฌํ•˜๋Š” ์ตœ๋Œ€ ์ธ์›์ˆ˜๋ฅผ ๊ตฌํ•˜์—ฌ ๊ทธ ์ธ์›์„ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์†Œ๋ฅผ ๋นŒ๋ฆฌ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๋ถ„์ด ํ˜„์ˆ˜๋ฅผ ๋„์™€์ฃผ์„ธ์š”. ๋งŒ์•ฝ ํ•œ ์นœ๊ตฌ๊ฐ€ ์˜ค๋Š” ์‹œ๊ฐ„ 13, ๊ฐ€๋Š”์‹œ๊ฐ„ 15๋ผ๋ฉด ์ด ์นœ๊ตฌ๋Š” 13์‹œ ์ •๊ฐ์— ํ”ผ๋กœ์—ฐ ์žฅ์— ์กด์žฌํ•˜๋Š” ๊ฒƒ์ด๊ณ  15์‹œ ์ •๊ฐ์—๋Š” ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. โ–ฃ ์ž…๋ ฅ์„ค๋ช… ์ฒซ์งธ ์ค„์— ํ”ผ๋กœ์—ฐ์— ์ฐธ์„ํ•  ์ธ์›์ˆ˜ N..

ํšŒ์˜์‹ค ๋ฐฐ์ •(ํƒ์š• ์•Œ๊ณ ๋ฆฌ์ฆ˜)

๋ฌธ์ œ(์ถœ์ฒ˜ : ์ธํ”„๋Ÿฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด ๊ฐ•์˜, ์ •๋ณด์˜ฌ๋ฆผํ”ผ์•„๋“œ) ํ•œ ๊ฐœ์˜ ํšŒ์˜์‹ค์ด ์žˆ๋Š”๋ฐ ์ด๋ฅผ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” n๊ฐœ์˜ ํšŒ์˜๋“ค์— ๋Œ€ํ•˜์—ฌ ํšŒ์˜์‹ค ์‚ฌ์šฉํ‘œ๋ฅผ ๋งŒ๋“ค ๋ ค๊ณ  ํ•œ๋‹ค. ๊ฐ ํšŒ์˜์— ๋Œ€ํ•ด ์‹œ์ž‘์‹œ๊ฐ„๊ณผ ๋๋‚˜๋Š” ์‹œ๊ฐ„์ด ์ฃผ์–ด์ ธ ์žˆ๊ณ , ๊ฐ ํšŒ์˜๊ฐ€ ๊ฒน์น˜์ง€ ์•Š๊ฒŒ ํ•˜ ๋ฉด์„œ ํšŒ์˜์‹ค์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€์ˆ˜์˜ ํšŒ์˜๋ฅผ ์ฐพ์•„๋ผ. ๋‹จ, ํšŒ์˜๋Š” ํ•œ๋ฒˆ ์‹œ์ž‘ํ•˜๋ฉด ์ค‘๊ฐ„์— ์ค‘ ๋‹จ๋  ์ˆ˜ ์—†์œผ๋ฉฐ ํ•œ ํšŒ์˜๊ฐ€ ๋๋‚˜๋Š” ๊ฒƒ๊ณผ ๋™์‹œ์— ๋‹ค์Œ ํšŒ์˜๊ฐ€ ์‹œ์ž‘๋  ์ˆ˜ ์žˆ๋‹ค. โ–ฃ ์ž…๋ ฅ์„ค๋ช… ์ฒซ์งธ ์ค„์— ํšŒ์˜์˜ ์ˆ˜ n(1

์žฅ๋‚œ๊พธ๋Ÿฌ๊ธฐ ํ˜„์ˆ˜(์ •๋ ฌ)

๋ฌธ์ œ(์ถœ์ฒ˜ : ์ธํ”„๋Ÿฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด ๊ฐ•์˜, ์ •๋ณด์˜ฌ๋ฆผํ”ผ์•„๋“œ) ์ƒˆ ํ•™๊ธฐ๊ฐ€ ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ˜„์ˆ˜๋Š” ์ƒˆ ์ง๊ฟ์„ ๋งŒ๋‚˜ ๋„ˆ๋ฌด ์‹ ์ด ๋‚ฌ์Šต๋‹ˆ๋‹ค. ํ˜„์ˆ˜๋„ค ๋ฐ˜์—๋Š” N๋ช…์˜ ํ•™์ƒ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์„ ์ƒ๋‹˜์€ ๋ฐ˜ ํ•™์ƒ๋“ค์—๊ฒŒ ๋ฐ˜ ๋ฒˆํ˜ธ๋ฅผ ์ •ํ•ด ์ฃผ๊ธฐ ์œ„ํ•ด ์šด๋™์žฅ์— ๋ฐ˜ ํ•™์ƒ๋“ค์„ ํ‚ค๊ฐ€ ๊ฐ€์žฅ ์ž‘์€ ํ•™ ์ƒ๋ถ€ํ„ฐ ์ผ๋ ฌ๋กœ ํ‚ค์ˆœ์œผ๋กœ ์„ธ์› ์Šต๋‹ˆ๋‹ค. ์ œ์ผ ์•ž์— ๊ฐ€์žฅ ์ž‘์€ ํ•™์ƒ๋ถ€ํ„ฐ ๋ฐ˜ ๋ฒˆํ˜ธ๋ฅผ 1๋ฒˆ๋ถ€ํ„ฐ N๋ฒˆ๊นŒ ์ง€ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค. ํ˜„์ˆ˜๋Š” ์ง๊ฟ๋ณด๋‹ค ํ‚ค๊ฐ€ ํฝ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ํ˜„์ˆ˜๊ฐ€ ์•ž ๋ฒˆํ˜ธ๋ฅผ ๋ฐ›๊ณ  ์‹ถ์–ด ์ง๊ฟ๊ณผ ์ž ๋ฆฌ๋ฅผ ๋ฐ”๊ฟจ์Šต๋‹ˆ๋‹ค. ์„ ์ƒ๋‹˜์€ ์ด ์‚ฌ์‹ค์„ ๋ชจ๋ฅด๊ณ  ํ•™์ƒ๋“ค์—๊ฒŒ ์„œ์žˆ๋Š” ์ˆœ์„œ๋Œ€๋กœ ๋ฒˆํ˜ธ๋ฅผ ๋ถ€์—ฌํ–ˆ์Šต๋‹ˆ ๋‹ค. ํ˜„์ˆ˜์™€ ์ง๊ฟ์ด ์ž๋ฆฌ๋ฅผ ๋ฐ”๊พผ ๋ฐ˜ ํ•™์ƒ๋“ค์˜ ์ผ๋ ฌ๋กœ ์„œ์žˆ๋Š” ํ‚ค ์ •๋ณด๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ ํ˜„์ˆ˜๊ฐ€ ๋ฐ›์€ ๋ฒˆ ํ˜ธ์™€ ํ˜„์ˆ˜ ์ง๊ฟ์ด ๋ฐ›์€ ๋ฒˆํ˜ธ๋ฅผ ์ฐจ๋ก€๋กœ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑ..

์นด์นด์˜ค ์บ์‹œ ๋ฌธ์ œ ๋ณ€ํ˜•(์‚ฝ์ž… ์ •๋ ฌ ์‘์šฉ)

๋ฌธ์ œ(์ถœ์ฒ˜ : ์ธํ”„๋Ÿฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด ๊ฐ•์˜, ์ •๋ณด์˜ฌ๋ฆผํ”ผ์•„๋“œ) ์บ์‹œ๋ฉ”๋ชจ๋ฆฌ๋Š” CPU์™€ ์ฃผ๊ธฐ์–ต์žฅ์น˜(DRAM) ์‚ฌ์ด์˜ ๊ณ ์†์˜ ์ž„์‹œ ๋ฉ”๋ชจ๋ฆฌ๋กœ์„œ CPU๊ฐ€ ์ฒ˜๋ฆฌํ•  ์ž‘์—… ์„ ์ €์žฅํ•ด ๋†“์•˜๋‹ค๊ฐ€ ํ•„์š”ํ•  ๋ฐ”๋กœ ์‚ฌ์šฉํ•ด์„œ ์ฒ˜๋ฆฌ์†๋„๋ฅผ ๋†’์ด๋Š” ์žฅ์น˜์ด๋‹ค. ์›Œ๋‚™ ๋น„์‹ธ๊ณ  ์šฉ๋Ÿ‰์ด ์ž‘์•„ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. ์ฒ ์ˆ˜์˜ ์ปดํ“จํ„ฐ๋Š” ์บ์‹œ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ ๊ทœ์น™์ด LRU ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋”ฐ ๋ฅธ๋‹ค. LRU ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ Least Recently Used ์˜ ์•ฝ์ž๋กœ ์ง์—ญํ•˜์ž๋ฉด ๊ฐ€์žฅ ์ตœ๊ทผ์— ์‚ฌ์šฉ๋˜์ง€ ์•Š ์€ ๊ฒƒ ์ •๋„์˜ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์บ์‹œ์—์„œ ์ž‘์—…์„ ์ œ๊ฑฐํ•  ๋•Œ ๊ฐ€์žฅ ์˜ค๋žซ๋™์•ˆ ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ๊ฒƒ์„ ์ œ๊ฑฐํ•˜๊ฒ ๋‹ค๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. ๋งŒ์•ฝ์บ์‹œ์˜์‚ฌ์ด์ฆˆ๊ฐ€5์ด๊ณ ์ž‘์—…์ด 2 3 1 6 7 ์ˆœ์œผ๋กœ์ €์žฅ๋˜์–ด์žˆ๋‹ค๋ฉด, (๋งจ ์•ž์ด ๊ฐ€์žฅ ์ตœ๊ทผ์— ์“ฐ์ธ ์ž‘์—…์ด๊ณ , ๋งจ ๋’ค๋Š” ๊ฐ€์žฅ ์˜ค..