์์งํ ์ด๋ฒ ํธ์ ๋ฑ๋ฑํ ๋๋์ด ๋ ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ถ๋์ด ๋ง๋ค. ํ ๊ท๋ก ๋ฃ๊ณ ํ ๊ท๋ก ํ๋ ค๋ฒ๋ ค๋ ๋ญ...
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ํธ์ฒ๋ผ ๋ง๋ง ๋ณด๊ณ ๋์ด๊ฐ๋ ๊ฒ ์๋๋ผ ๊ฐ๋ ๋ค์ ๊น์ด ์์๋ณผย ์๊ฐ์ด๋ค.
์ ์ฝ์์
์ธ๊ณต์ง๋ฅ์์ ํํ ์ฐ๋ ๊ธฐ๋ฒ์ธ ๊ฒฝ์ฌํ๊ฐ๋ฒ์ ์ฌ์ค iterative(๋ฐ๋ณต๋์ ) ๊ธฐ๋ฒ์ธ๋ฐ, ์ด iteration ๊ธฐ๋ฒ๋ ๋์ ํ๋ก๊ทธ๋๋ฐ์ ์ผ์ข ์ผ๋ก ๋ณด๊ธฐ๋ ํ๋ ๊ฒ ๊ฐ๋๋ผ