์†”์งํžˆ ์ด๋ฒˆ ํŽธ์€ ๋”ฑ๋”ฑํ•œ ๋А๋‚Œ์ด ๋“ ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ถ„๋Ÿ‰์ด ๋งŽ๋‹ค. ํ•œ ๊ท€๋กœ ๋“ฃ๊ณ  ํ•œ ๊ท€๋กœ ํ˜๋ ค๋ฒ„๋ ค๋„ ๋ญ...


I. ์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด ๊ตฌ์„ฑ

(1) SOC(System/Software On a Chip)

๋น„์œ ํ•˜์ž๋ฉด ์šฐ๋ฆฌ์˜ ๋‡Œ์™€ ๊ฐ™์€ ์กด์žฌ๋‹ค. CPU, GPU, NPU, RAM, ROM ๋“ฑ์˜ ๋ถ€ํ’ˆ๋“ค์ด ํ†ตํ•ฉ๋˜์–ด ์นฉ ํ•˜๋‚˜์— ๋‹ด๊ฒจ์žˆ๋Š” ๊ฒƒ. ์ฃผ๋กœ ๋ชจ๋ฐ”์ผ ์žฅ์น˜์— ์‚ฌ์šฉ๋œ๋‹ค.



(2) CPU(Central Processing Unit, ์ค‘์•™ ์ฒ˜๋ฆฌ ์žฅ์น˜)

๋น„์œ ํ•˜์ž๋ฉด ์šฐ๋ฆฌ์˜ ๋Œ€๋‡Œ์™€ ๊ฐ™์€ ์กด์žฌ๋‹ค. ๊ธฐ์–ต, ํ•ด์„, ์—ฐ์‚ฐ, ์ œ์–ด ๋“ฑ 4๋Œ€ ์ฃผ์š” ๊ธฐ๋Šฅ์„ ๊ด€ํ• ํ•œ๋‹ค. ์ฆ‰, ํ”„๋กœ๊ทธ๋ž˜๋ฐ์–ธ์–ด๋ฅผ ํ†ตํ•œ ๋ช…๋ น์„ ํ•ด์„ํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ์‚ฐํ•˜์—ฌ ์ฒ˜๋ฆฌํ•˜๋Š” ๋“ฑ์˜ ์—ญํ• ์„ ํ•œ๋‹ค. CPU๊ฐ€ ์—†์œผ๋ฉด ์ปดํ“จํ„ฐ๊ฐ€ ์•„์˜ˆ ๋Œ์•„๊ฐ€์ง€ ์•Š์„ ์ •๋„๋กœ ์ค‘์š”ํ•˜๋‹ค.

ย 

์ œ์–ด ์žฅ์น˜(Control Unit; CU), ์—ฐ์‚ฐ ์žฅ์น˜(Arithmetic and Logical Unit; ALU), ๋ ˆ์ง€์Šคํ„ฐ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ๋ ˆ์ง€์Šคํ„ฐ๋Š” ์ž„์‹œ ๊ธฐ์–ต ์žฅ์†Œ๋กœ์„œ ๋ฉ”๋ชจ๋ฆฌ(Memory, ์ปดํ“จํ„ฐ ์•ˆ์˜ ์ €์žฅ๊ธฐ๋Šฅ์„ ๊ฐ–๊ณ  ์žˆ๋Š” ๊ฒƒ)์˜ ์ผ์ข…์ด๋‹ค.

ย 

์„ฑ๋Šฅ์„ ํ‰๊ฐ€ํ•  ๋•Œ๋Š” ํด๋Ÿญ, ์ฝ”์–ด, ์บ์‹œ(Cache)๋ฉ”๋ชจ๋ฆฌ ๋“ฑ์„ ๋ณธ๋‹ค...๋งŒ ์—ฌ๊ธฐ์„œ๋Š” ์„ค๋ช…ํ•˜์ง€ ์•Š๊ฒ ๋‹ค.

ย 

cf) ๊ทธ๋ฆฌ๊ณ  ์‹ค์ƒํ™œ์—์„œ ๋งŽ์ด ๋ณด์ด๋Š” ๊ฑฐ๋ผ ํ•œ ๊ฐ€์ง€ ์–ธ๊ธ‰ํ•˜์ž๋ฉด, x86๊ณผ x64 ์ค‘์—์„œ x64๊ฐ€ ๋” ์ข‹์€ ๊ฑฐ๋‹ค. x86์€ 32bit์งœ๋ฆฌ์ธ๋ฐ ์ธํ…”(ํšŒ์‚ฌ ์ด๋ฆ„์ด๋‹ค) ์ชฝ์˜ ๊ด€๋ก€์ƒ ๊ทธ๋ ‡๊ฒŒ ์“ด ๊ฑฐ๊ณ  x64๋Š” ๊ทธ๋ƒฅ 64bit์งœ๋ฆฌ์ด๊ธฐ ๋•Œ๋ฌธ.

(3) GPU, ๊ทธ๋ž˜ํ”ฝ ์นด๋“œ, GPGPU

* GPU(Graphics Processing Unit): ์ด๋ฆ„ ๊ทธ๋Œ€๋กœ ์ปดํ“จํ„ฐ ๊ทธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•ด์ฃผ๋Š” ์žฅ์น˜๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๊ฒŒ์ž„ ๊ทธ๋ž˜ํ”ฝ์ด๋ผ๋“ ๊ฐ€ ์ฐฝ์ด๋ผ๋“ ๊ฐ€, ์‹œ๊ฐ์ ์ธ ๊ฒƒ์„ ๋‹ด๋‹นํ•œ๋‹ค. ์‚ฌ์‹ค CPU๋ฅผ ์จ๋„ ์•ˆ ๋  ๊ฑฐ๋Š” ์—†๋‹ค๋งŒ ์ด๋Ÿฐ ์ชฝ์— ํŠนํ™”ํ•˜์—ฌ ์“ธ ์ˆ˜ ์žˆ๋„๋ก GPU๋ฅผ ๋งŒ๋“  ๊ฒƒ์ด๋‹ค. ๊ทธ๋ž˜ํ”ฝ ์นด๋“œ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฐ€์žฅ ์ค‘์š”ํ•œ ํ•ต์‹ฌ ์š”์†Œ์ด๋‹ค.

ย 

* ๊ทธ๋ž˜ํ”ฝ ์นด๋“œ: ๊ทธ๋Ÿฌ๋ฉด ๊ทธ๋ž˜ํ”ฝ ์นด๋“œ๋ผ๋Š” ๊ฒŒ ๋ฌด์—‡์ด๋ƒ? CPU์˜ ๋ช…๋ นํ•˜์— ์ด๋ฃจ์–ด์ง€๋Š” ๊ทธ๋ž˜ํ”ฝ ์ž‘์—…์„ ์ „๋ฌธ์ ์œผ๋กœ ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•˜๊ณ  ๋””์ง€ํ„ธ ์‹ ํ˜ธ๋ฅผ ์˜์ƒ ์‹ ํ˜ธ๋กœ ๋ฐ”๊ฟ” ๋ชจ๋‹ˆํ„ฐ๋กœ ์ „์†กํ•˜๋Š” ์žฅ์น˜...๋ผ๊ณ  ๋‚˜๋ฌด์œ„ํ‚ค์—์„œ ์ •์˜ํ•˜๊ณ  ์žˆ๋‹ค. ์—ญ์‹œ ๋‚˜๋ฌด์œ„ํ‚ค๊ฐ€ ํŽธํ•˜๋‹ค.

ย 

* GPGPU(General-Purpose computing on GPU): CPU๊ฐ€ ๋งก์•˜๋˜ ์—ฐ์‚ฐ์„ GPU์—๋„ ์‚ฌ์šฉํ•ด ์—ฐ์‚ฐ ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๊ธฐ์ˆ . ํŠน์ • ๊ณ„์‚ฐ์€ GPU๊ฐ€ CPU๋ณด๋‹ค ๋น ๋ฅธ ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค.


(4) ROM vs RAM

์ฃผ๊ธฐ์–ต์žฅ์น˜(Main Memory)์˜ ์ผ์ข….

ย 

ROM(Read-Only Memory)์€ ๊ธฐ๋ก๋œ ์ •๋ณด๊ฐ€ ์ „์›์œ ์ง€์™€ ์ƒ๊ด€์—†์ด ๊ณ„์† ๊ธฐ์–ต๋˜๋Š” ์žฅ์น˜๋กœ ๋น„ํœ˜๋ฐœ์„ฑ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ผ์ข…์ด๋ฉฐ, RAM(Random Access Memory)์€ ์ „์›์ด ์ฐจ๋‹จ๋˜๋ฉด ๋‚ด์šฉ์ด ์ง€์›Œ์ง€๋Š” ํœ˜๋ฐœ์„ฑ ๋ฉ”๋ชจ๋ฆฌ๋‹ค.

ย 

RAM์€ SRAM(Static RAM)๊ณผ DRAM(Dynamic RAM)์œผ๋กœ ๋‚˜๋‰˜๋Š”๋ฐ, SRAM์€ ์ „์›์ด ๊ณต๊ธ‰๋˜๋Š” ํ•œ ๋‚ด์šฉ์„ ๊ทธ๋Œ€๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” RAM์ด๋ฉฐ, DRAM์€ ์ฃผ๊ธฐ์ ์ธ ์žฌ์ถฉ์ „์ด ํ•„์š”ํ•˜๋‹ค. ๋˜ SRAM์ด ์†๋„๊ฐ€ ๋” ๋น ๋ฅด๋‹ค. ๊ทผ๋ฐ ๋น„์šฉ๊ณผ ์ง‘์ ๋„ ๋“ฑ์˜ ๋ฌธ์ œ ๋•Œ๋ฌธ์— ์šฐ๋ฆฌ๋Š” ๋ณดํ†ต DRAM์„ ์“ฐ๊ณ  ์‹ค์ƒํ™œ์—์„œ๋„ ๋ณดํ†ต RAM์ด๋ผ๊ณ  ํ•˜๋ฉด DRAM์„ ์˜๋ฏธํ•œ๋‹ค.

ย 

์•„ ๋ฌผ๋ก  ROM๋„ ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค. ๊ทผ๋ฐ ๋ถ„๋Ÿ‰ ๋ฌธ์ œ๋กœ ๊ตฌ์ฒด์ ์ธ ์„ค๋ช…์€ ์Šคํ‚ตํ•œ๋‹ค.

ย 

(5) SSD vs HDD

๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜(Auxiliary Storage Unit)์˜ ์ผ์ข….

ย 

HDD(Hard Disk Drive)์™€ SSD(Solid State Drive). ํ”ํžˆ 'ํ•˜๋“œ ๋””์Šคํฌ'๋ผ๊ณ  ๋งํ•˜๋Š” ๊ฒŒ HDD. HDD๋ฅผ ๋งŽ์ด๋“ค ์“ฐ๋‹ค๊ฐ€ ์ตœ๊ทผ SSD๊ฐ€ ๋ณธ๊ฒฉ์ ์œผ๋กœ ๋“ฑ์žฅํ•ด์„œ ๋งŽ์ด ์“ฐ์ด๊ณ  ์žˆ๋‹ค. HDD์˜ ๋‹จ์ ๋“ค์„ ๋งŽ์ด ์ปค๋ฒ„ํ•ด์ฃผ์ง€๋งŒ ๋น„์‹ผ ๊ฒŒ ํ .




II. ๋™์  ๊ณ„ํš๋ฒ•(Dynamic Programming; DP)

2ํŽธ์—์„œ ์†Œ๊ฐœํ–ˆ๋˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๊ณ„ ๊ธฐ๋ฒ•์˜ ์ผ์ข…์ด๋‹ค. ์˜ˆ์‹œ๋กœ ๊ฐ€์ ธ์™”๋‹ค๊ณ  ๋ณด๋ฉด ๋˜๊ฒ ๋‹ค. ๋‚˜๋ฌด์œ„ํ‚ค์˜ ์„ค๋ช…์„ ์‰ฝ๊ฒŒ ๊ฐ€๊ณตํ•ด์„œ ๊ฐ€์ ธ์™”๋‹ค.

์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด, ์ฃผ์–ด์ง„ ๋ฌธ์ œ๋ฅผ ์ž˜๊ฒŒ ์ชผ๊ฐœ์„œ ๋ถ€๋ถ„ ๋ฌธ์ œ๋ฅผ ๋งŒ๋“ค๊ณ , ๊ทœ์น™์„ ์ฐพ์•„ ์ ํ™”์‹์„ ๋งŒ๋“ค์–ด์„œ, ๋ถ€๋ถ„ ๋ฌธ์ œ์˜ ํ’€์ด๋ฅผ ํ™œ์šฉํ•ด ์ฃผ์–ด์ง„ ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š” ๊ฒƒ์ด๋‹ค.


์˜ˆ๋ฅผ ํ•˜๋‚˜ ๋“ค์–ด๋ณด์ž.

๊ฐ€๋กœ ์—ด ์นธ, ์„ธ๋กœ ์—ด ์นธ. ์ด 100์นธ์ด ์žˆ๋Š” ๋ฏธ๋กœ๋ฅผ ์ƒ๊ฐํ•ด๋ณด๋ผ.

(0,0)์—์„œ ์ถœ๋ฐœํ•ด์„œ (9,9)๊นŒ์ง€ ๊ฐ€์•ผ ํ•˜๋Š”๋ฐ ์˜ค๋ฅธ์ชฝ/์œ„์ชฝ์œผ๋กœ 1์นธ์”ฉ๋งŒ ์›€์ง์ผ ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ๊ฐ ์นธ๋งˆ๋‹ค ํ†ตํ–‰๋ฃŒ๊ฐ€ ์žˆ๋‹ค๊ณ  ์น˜์ž. (1,1)์€ 2๋‹ฌ๋Ÿฌ, (3,4)๋Š” 5๋‹ฌ๋Ÿฌ... ์ด๋Ÿฐ ์‹์œผ๋กœ.


ํ†ตํ–‰๋ฃŒ์˜ ์ตœ์†Ÿ๊ฐ’์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋‹ค ๋”ฐ์ง€๊ณ  ์žˆ์œผ๋ฉด ๋ญ... ๋‹ต์ด ์—†๋‹ค.


๋ฐ˜๋ฉด ๋™์  ๊ณ„ํš๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉด, ๋ถ€๋ถ„ ๋ฌธ์ œ๋“ค์˜ ๋‹ต์„ ๋จผ์ € ๊ตฌํ•ด๋†“๋Š”๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด (1,1)๊นŒ์ง€ ๊ฐˆ ๋•Œ ํ†ตํ–‰๋ฃŒ์˜ ์ตœ์†Ÿ๊ฐ’ ๊ฐ™์€ ๊ฑฐ.

๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์„ ํ™œ์šฉํ•ด ๋ฌธ์ œ๋ฅผ ํ’€๋ฉด ์Šคํ”ผ๋“œ๊ฐ€ ํ™•์—ฐํžˆ ๋นจ๋ผ์ง„๋‹ค. ์ค‘๋ณต ๊ณ„์‚ฐ์„ ํ”ผํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ๊นŒ.





III. 1~4ํŽธ ๊ฒฐ์‚ฐ


ํ˜•๊ด‘ํŽœ ์น ํ•œ ๋ถ€๋ถ„ ์ •๋„์˜ ๊ฐœ๋…์€ ์†Œ๊ฐœํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค.ย 


๋ฌผ๋ก  ์ด ์นผ๋Ÿผ์€ ์ž…๋ฌธ์นผ๋Ÿผ์ด๋‹ˆ ๊ฐœ๋…๋“ค์„ ๋Œ€์ถฉ ๋„˜๊ฒจ๋ฒ„๋ฆฐ ๋ถ€๋ถ„๋„ ๋งŽ๊ณ  (์‚ฌ์‹ค ์ œ๋Œ€๋กœ ์†Œ๊ฐœํ•œ ๊ฒŒ ์—†๋Š” ๊ฒƒ ๊ฐ™๋‹ค), ํ•˜๋‚˜ํ•˜๋‚˜๊ฐ€ ๊นŠ์ด ๋“ค์–ด๊ฐ€๋ฉด ๋งŽ๊ฒŒ๋Š” ์ „๊ณต์„œ ํ•˜๋‚˜ ๋ถ„๋Ÿ‰์ด๊ธฐ๋Š” ํ•˜์ง€๋งŒ, ์ปดํ“จํ„ฐ๊ณตํ•™์ด ๋ฌด์—‡์ธ์ง€ ์•Œ๊ณ  ๋‰ด์Šค์— ๋‚˜์˜ค๋Š” ์šฉ์–ด๋“ค์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์ •๋„์˜ ์ง€์‹๋งŒย ์Œ“์•„๋„ ๋‚˜์—๊ฒŒ๋„, ํŠน๊ฐค๋Ÿฌ๋“ค์—๊ฒŒ๋„ ๋„์›€์ด ๋˜๋ฆฌ๋ผ ์ƒ๊ฐํ•œ๋‹ค.


์€๊ทผํžˆ DRAM์ด๋ผ๋“ ๊ฐ€ SSD๋ผ๋“ ๊ฐ€... ๋‰ด์Šค์— ๋งŽ์ด ๋‚˜์˜ค๋‹ˆ ๊ฐœ๋…์ด๋ผ๋„ ์•Œ์•„๋‘๋ฉด ์ข‹์„ ๊ฒƒ์ด๋‹ค.


5ํŽธ๋ถ€ํ„ฐ๋Š” ์ธ๊ณต์ง€๋Šฅ, ๋”ฅ๋Ÿฌ๋‹, ์ธ๊ณต์‹ ๊ฒฝ๋ง ๋“ฑ์˜ ๊ฐœ๋…์œผ๋กœ ๋“ค์–ด๊ฐ„๋‹ค. ์ด์ชฝ์€ 1~4ํŽธ์ฒ˜๋Ÿผ ๋ง›๋งŒ ๋ณด๊ณ  ๋„˜์–ด๊ฐ€๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ ๊ฐœ๋…๋“ค์„ ๊นŠ์ด ์•Œ์•„๋ณผย ์ƒ๊ฐ์ด๋‹ค.