๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐฉ์์ ์๋ฃ๊ตฌ์กฐ๋ผ๊ณ ํ๋ค. ์๋ฃ๊ตฌ์กฐ๋ ๋ฐ์ดํฐ๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ์ ์ฅํ์ฌ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๊ฒ ํ๊ณ , ๋น ๋ฅด๊ณ ์์ ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ์์๋๋ก ๋์์ค๋ค.
์๋ฃ๊ตฌ์กฐ๋ฅผ ํ์ตํ๋ ๊ฒ์ด ์๊ณ ๋ฆฌ์ฆ ์ฝ๋ฉํ ์คํธ ๋ฌธ์ ํธ๋ ๊ฒ์ ๋์์ด ๋ ๊น?
์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ ๊ธด๋ฐํ ๊ด๊ณ๊ฐ ์๋ค. ํน์ ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํํ๊ธฐ ์ํด์ ๊ผญ ์ฌ์ฉํด์ผ ํ๋ ์๋ฃ๊ตฌ์กฐ๊ฐ ์์ ์ ์๋ค. ๋ํ ์ด๋ค ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ ํํ๋์ง์ ๋ฐ๋ผ์ ์ฌ์ฉํ ์ ์๋ ์๊ณ ๋ฆฌ์ฆ์ด ๋ฌ๋ผ์ง๋ค.
์๋ฅผ ๋ค์ด, BFS ๋ฅผ ์ฌ์ฉํ๊ณ ์ถ๋ค๋ฉด Queue ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํด์ผํ๊ณ Dijkstra ๋ฅผ ์ฌ์ฉํ๊ณ ์ถ๋ค๋ฉด Heap ์๋ฃ๊ตฌ์กฐ๊ฐ ์ฌ์ฉ๋๋ค.
- ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ๋ฒ, ์ด๋ ํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ ํด์ง ์ผ๋ จ์ ์ ์ฐจ๋ ๋ฐฉ๋ฒ
- ์์ฃผ ์ฐ์ด๋ ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ๋ฒ(์๊ณ ๋ฆฌ์ฆ)์ ํจํดํ
- BFS, DFS, Binary Search, Dijstara ๋ฑ
- ํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ค์ํจ
- ๊ฐ ๋ฌธ์ ์ ์ ํฉํ ์๊ณ ๋ฆฌ์ฆ์ ์ ํํ ์ ์์ด์ผ ํ๋ค.
- ์๊ณ ๋ฆฌ์ฆ์ ํ๊ฐํ ์ ์์ด์ผํ๋ค.
* ํ๊ฐ ๊ธฐ์ค
- ์๊ฐ ๋ณต์ก๋ Time Complexity
- ๊ณต๊ฐ ๋ณต์ก๋ Space Complexity
- ๊ตฌํ ๋ณต์ก๋
์๊ฐ ๋ณต์ก๋์ ๊ณต๊ฐ๋ณต์ก๋๋ ๋ณดํต
trade-off
๊ด๊ณ(์๊ฐ๋ณต์ก๋๋ ๊ณต๊ฐ๋ณต์ก๋ ๋ณด๋ค ์ค์๋๊ฐ ๋๋ค)
* trade-off?? ์คํ์๊ฐ์ ์ค์ด๊ธฐ ์ํด์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ ์ฌ์ฉํด์ผ ํ๊ณ , ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ ์ค์ด๋ค๋ณด๋ฉด ์คํ์๊ฐ์ด ๋์ด๋๊ฒ ๋๋ ๊ด๊ณ์คํ์๊ฐ์ ์ค์ด๊ธฐ ์ํด์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ ์ฌ์ฉํด์ผ ํ๊ณ , ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ ์ค์ด๋ค๋ณด๋ฉด ์คํ์๊ฐ์ด ๋์ด๋๊ฒ ๋๋ค. ์ฝ๋ฉํ ์คํธ์์๋ ๋ณดํต ์คํ์๊ฐ์ ์ค์ด๋๊ฒ ์ค์ํ๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํด์ ์คํ์๊ฐ์ ์ค์ด๋ ๋ฐฉ๋ฒ๋ค์ ์๊ฐ๋ณต์ก๋๋ฅผ ๋ฏธ๋ฆฌ ๊ณ์ฐํ์ฌ ๋ฌธ์ ์กฐ๊ฑด์ ๋ฑ ๋ง์ถ๋ฉด์๋ ๊ตฌํํ๊ธฐ ์ฌ์ด ์๊ณ ๋ฆฌ์ฆ์ ์ ํํ ์ ์๋ ๋ฐฉ๋ฒ๋ ๊ฐ์ด ํ๋ จ ํ์
์๋ฃ๊ตฌ์กฐ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐฉ์์ด๋ค, ์ฌ๊ธฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ณณ์ ๋ฉ๋ชจ๋ฆฌ
์ธ๋ฐ ์ด ๋ฉ๋ชจ๋ฆฌ๋ ๋ 2๊ฐ์ง๋ก ๋๋ ์ง๋ค.
* ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์ฑ
1. HDD ํ๋๋์คํธ
2. RAM
- HDD : ์ฝ๋๋ฅผ ์์ฑํ๊ณ ์ ์ฅํ๋ฉด ๊ทธ ์ฝ๋๋ค์ด HDD์ ์ ์ฅ๋๋ค.
- RAM : ์ ์ฅ๋ ์ฝ๋๋ค์ ์คํํ๋ฉด RAM ๋ฐ์ดํฐ์ ์ฌ๋ผ๊ฐ๊ฒ ๋๋ค.
๋ง์ฝ ๋นํจ์จ์ ์ธ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ค๋ฉด, RAM ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๋ฅผ ์ด๋ํ๊ณ ํ๋ก๊ทธ๋จ ์ฑ๋ฅ ์ ํ ์์ธ์ด ๋ ์ ์๋ค. ๋ฐ๋ผ์ ์ฉ๋์ ์ฌ์ฉ์ ๋ง๋ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ ํํด์ผ ํ๋ค.
๋ฐ๋ผ์ ์ฉ๋์ ์ฌ์ฉ์ ๋ง๋ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ ํํด์ผ ํ๋ค. ์ ์์
: List
- LIST : ๋ฐ์ดํฐ๋ฅผ ์์ฐจ์ ์ผ๋ก ๋์ดํด ๋์ ์งํฉ
Array Linked List ๋ฐ์ดํฐ ์ ๊ทผ์ด ์ฝ๋ค ๋ฐ์ดํฐ ์ถ๊ฐ, ์ญ์ ๊ฐ ์ฝ๋ค. ๐ ๋ฉ๋ชจ๋ฆฌ์ ์ฐจ์ด๋ก ์ธํด ์ฅ๋จ์ ์ด ๋๋ ทํ๋ค.
RAM(Random Access Memory)
: ์ ๊ธฐ ์ ํธ๋ฅผ ์ ์ฅํ ์ ์๋ ํธ๋์ง์คํฐ๋ผ๋ ์์ ๋ฐ๋์ฒด๋ก ์ด๋ค์ ธ ์๋ค.
- 1BIT
1BIT ๋ 1๊ณผ 0์ ํํํ ์ ์๋ค. (1 ๋๋ 0)
- 2BIT
2BIT ๋ (1.0) (0.0) (0.1) (1.1) ์ด 4๊ฐ์ง๋ฅผ ํํํ ์ ์๋ค.
- 8BIT
8BIT๋ 1Byte ๋ผ๊ณ ๋ ํ๋ค.
8๊ฐ์ง 1์นธ์ ์ด 2๊ฐ์ง์ ์ซ์ ํํ ์ฆ, 2์ 8์น ๊ฐ์ง ํํ์ด ๊ฐ๋ฅํ๋ค.
โ computer๋ 2์ง์๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ ๋๋ก ์๊ณ ์์ด์ผ ํ๋ค.
10์ง๋ฒ | 2์ง๋ฒ |
---|---|
0 | 00000000 |
217 | 11011001 |
255 | 11111111 |
๋ง์ฝ ์ซ์๊ฐ ์์ฒญ ์ปค์ง๋ฉด, 2์ง๋ฒ์ผ๋ก ํํํ๊ธฐ ํ๋ค ๊ฒ, ๊ทธ๋์ 16์ง๋ฒ๋ ์ฌ์ฉํ ์์
2์ง๋ฒ | 16์ง๋ฒ |
---|---|
binary | hexadecimal |
(ob)1101101 | (ox) D98AF6F |
2์ง๋ฒ๊ณผ 16์ง๋ฒ ๋ชจ๋ ์์
ob
๋๋ox
๋ฅผ ๋ถ์ฌ์ ๊ตฌ๋ณํ๋ค.
16์ 2์ 4์น์ด๋ค.
2์ 4์น์ 2์ง๋ฒ์ผ๋ก ํํํ๋ฉด 1101 1001 ์ด ๋๋ฉฐ ์ด๋ฅผ ๋ ๋ณํํ๊ธฐ๋ฒ์ผ๋ก ํํํ๋ฉด
D์ 9๋ก ํํํ ์ ์๋ค.
์ฆ, 1101 1001 ์
(OX)D9
๋ก ํํ์ด ๊ฐ๋ฅํ๋ค.
- ์ซ์
217
์ด ํํ๋๋ ๋ฐฉ๋ฒ
10์ง๋ฒ 217 2์ง๋ฒ 1101 1001 16์ง๋ฒ OXD9
RAM ์ด 1MB๋ฅผ ์ฌ์ฉํ๋ค๊ณ ๊ฐ์ ํ์๋,
- 1Byte๊ฐ 1024๊ฐ ๋ชจ์ด๋ฉด
1KB
๊ฐ ๋๋ค.- 1KB๊ฐ 1024๊ฐ ๋ชจ์ด๋ฉด
1MB
๊ฐ ๋๋ค.
๋์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์์์ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๊ธฐ ์ํด ์ด๋ ํ ์งํ๋ก, byte ๋ง๋ค ์ฃผ์๊ฐ(address)
๋ฅผ ๋ฌ์๋์๋ค.
INT ๊ฐ ๋ฉ๋ชจ๋ฆฌ์์ 4Byte๋ฅผ ์ฐจ์งํ๋ค.
int price = 29000000;
(2์ต 9์ฒ๋ง์ด๋ผ๊ณ ํ๋ค๋ฉด)2์ต 9์ฒ๋ง์ binary๋ก ํํํ๋ค๋ฉด,
00010001 01001001 00001100 10000000
์ด๋ค. ์ด๋ฌํ 2์ง์๊ฐ 4byte์ ๊ฑธ์ณ์๋ค์๊ณผ ๊ฐ์ด ์ ์ฅ๋๋ค.
computer๋ ์ซ์๋ง ์ ์ฅ์ด ๊ฐ๋ฅํ๋ค, ๋ฐ๋ผ์ ๋ฌธ์๋ฅผ ์ซ์๋ก ํํํ ์ ์๋๋ก
ASCII CODE
๋ฅผ ํตํด ์ ์ฅํ๋ค.
ASCII CODE
๋ ์ด 128๊ฐ (์ซ์์ ๋ฌธ์๊ฐ 1:1)- 1BYTE ์์
Char ascii = 'A' ====> ์ซ์ 65
- Array : ์ฐ์์ (continuous)์ผ๋ก ํ ๋น
int array[4] = {1, 2, 3, 4};๊ฐ๊ฐ 4byte ์ฉ ์ด 16byte ์ฐจ์ง
๊ฐ data๋ ๊ฐ์ฅ ์์ address๋ฅผ ๋ํ๋ก ๊ฐ์ง๋ค.
- Linked List : ๋ถ์ฐ์์ (discontinuous)๋ถ์ฐ์์ ์ผ๋ก ํ ๋น
๊ฐ๋ง ์ ์ฅํ๋ค๋ฉด
๊ฐ1
๋ค์ ๊ฐ์ ์ ์ ์๋ค. ๋ฐ๋ผ์ ๋ค์์ผ๋ก ๋์ฌ ๊ฐ์
address
๋ ๊ฐ์ด ์ ์ฅํ๋ค. ๊ทธ๋ ๋ค๋ฉด,์ฐ์์ฑ
์ ๋ณด์ฅ ๋ฐ๋๋ค.