-
ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ ์ํด์ ๊ตฌ์กฐํ๋ data set
-
๊ตฌ์กฐํ๋ data set์ service, application ์์ ๋ฉ๋ชจ๋ฆฌ๊ฐ data๋ฅผ ํจ์จ์ ์ธ ๋ฐฉ์์ผ๋ก ๋น ๋ฅด๊ฒ ์ ๊ทผ, ์์ , ์ฝ์ , ์ญ์ ํ ์์๋๋ก ํ๋ค.
-
๋ชฉ์ ๊ณผ ํ์ํ ๊ธฐ๋ฅ์ ๋ฐ๋ผ ์ ํฉํ data structure๊ฐ ์กด์ฌํ๋ค.
- service์์ client์๊ฒ data๋ฅผ ์ ๊ณต => access, search ์ ์ค์ .
- application์์ user์๊ฒ ํ์ํ data๋ฅผ ๋ณด์ฌ์ฃผ๊ฑฐ๋ ์์ => access, modification์ ์ค์
-
data structure ๋ง๋ค ์ฌ์ฉ์๊ฐ ์ํ๋ ๊ธฐ๋ฅ์ ์ํํ๋๋ฐ ์๋์ ์ฐจ์ด๊ฐ ๋ ์์๋ค.
-
๋ํ์ ์ผ๋ก Array, Linked-List, Double-Linked-List, Stack, Hash-Table ๋ฑ.
-
data structure key point
-
- Order : structure์์์ data ์์ ๋ณด์ฅ ์ฌ๋ถ
-
- Unique : ์ค๋ณต๋ ๋ฐ์ดํฐ ๊ฐ์ ๊ฐ์ง์ ์๋์ง ์ฌ๋ถ
-
- Search : ๊ฒ์์ ํจ์จ์ฑ
-
- Modification : ๋ฐ์ดํฐ ์์ ์ ํจ์จ์ฑ
๊ตฌํ์ ๋ฐ๋ผ
- ๋ฐฐ์ด
- ํํ
- ์ฐ๊ฒฐ ๋ฆฌ์คํธ
- ์ํ ์ฐ๊ฒฐ ๋ฆฌ์คํธ
- ์ด์ค ์ฐ๊ฒฐ ๋ฆฌ์คํธ
- ํด์ ํ ์ด๋ธ
ํํ์ ๋ฐ๋ผ
- ์ ํ๊ตฌ์กฐ
- ์ ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ
- ๋ฐฐ์ด
- ๋์ ๋ฐ์ดํฐ ๊ตฌ์กฐ
- ์คํ
- ํ
- ์ฐ๊ฒฐ ๋ฆฌ์คํธ
- ์ ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ
- ๋น์ ํ ๊ตฌ์กฐ
- ๊ทธ๋ํ
- ํธ๋ฆฌ
- ์ด์ง ํธ๋ฆฌ
- ํ
- ์ด์ง ํธ๋ฆฌ
-
๋์ ์์ค์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ ์์ , ํ์, ์ ๊ทผ์ ๋ณด๋ค ์ฝ๊ฒ ํด์ฃผ๋ ๋ฐ์ดํฐ ์ ์ฅ ๋ฐ ๊ตฌ์ฑ ๊ธฐ์ ์ ๋๋ค.
-
๋ฐ์ดํฐ ๊ตฌ์กฐ๋ ๋ฐ์ดํฐ ์์ง ๋ฐฉ๋ฒ, ๋ฐ์ดํฐ์ ์ ๊ทผํ๋๋ฐ ์ฌ์ฉํ ์ ์๋ ๊ธฐ๋ฅ ๋ฐ ๋ฐ์ดํฐ ๊ฐ์ ๊ด๊ณ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค.
-
๋ฐ์ดํฐ ๊ตฌ์กฐ๋ ์ด์ ์ฒด์ ์์ ๊ธฐ๋ณธ ๋ฐ๋๋ผ ์ฝ๋, ์ธ๊ณต ์ง๋ฅ์ ์ด๋ฅด๊ธฐ๊น์ง ์ปดํจํฐ ๊ณผํ ๋ฐ ํ๋ก๊ทธ๋๋ฐ์ ๊ฑฐ์ ๋ชจ๋ ์์ญ์์ ์ฌ์ฉ๋ฉ๋๋ค.
-
๋ฐ์ดํฐ ๊ตฌ์กฐ๋ ์ฐ๋ฆฌ๊ฐ ๋ค์๊ณผ ๊ฐ์๊ฒ๋ค์ด ๊ฐ๋ฅํ๊ฒํฉ๋๋ค.
-
- ๋๊ท๋ชจ์ ์๋ฃ์งํฉ์ ๊ด๋ฆฌ ๋ฐ ํ์ฉ
-
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ํน์ ํ ๋ฐ์ดํฐ ํ์
-
- ํน์ ํ๋ก๊ทธ๋จ์ ๋ง๋ ์ค๊ณ ์๊ณ ๋ฆฌ์ฆ
-
- ์ฌ์ฉ์๋ค์ ์ฌ๋ฌ ์์ฒญ์ ํ ๋ฒ์ ์ฒ๋ฆฌ
-
- ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋จ์ํ ๋ฐ ์๋ ํฅ์
-
-
๋ฐ์ดํฐ ๊ตฌ์กฐ๋ ํจ์จ์ ์ธ ์ค์ ์ ์ธ ๋ฌธ์ ํด๊ฒฐ์ ํ์์ ์ด๋ค.
-
๋ฌด์๋ณด๋ค ์ฐ๋ฆฌ๊ฐ ๋ฐ์ดํฐ๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐฉ์์ ์ฑ๋ฅ๊ณผ ์ ์ฉ์ฑ์ ๋ง์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
-
์ค์ ๋ก ๋๋ถ๋ถ์ ์ต๊ณ ๊ธฐ์ ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๋ํ ๊ฐ๋ ฅํ ์ดํด๋ฅผ ํ์๋กํฉ๋๋ค.
-
์ด๋ฌํ ๊ธฐ์ ์ ๋น์ ์ด ๋น์ ์ ๋ฐ์ดํฐ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ดํดํ๋์ง๋ฅผ ์ฆ๋ช ํฉ๋๋ค.
-
์ฝ๋ฉ ์ธํฐ๋ทฐ๋ฅผ ๊นจ๋ถ์ค๋ คํ๋ ์ฌ๋์ ๋๊ตฌ๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ ์๋ฌ์ ํ์๋ก ํ๋ค.
-
JavaScript์๋ ๊ธฐ๋ณธ(์์) ๋ฐ ๋น ๊ธฐ๋ณธ(์์) ๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ์์ต๋๋ค.
-
๊ธฐ๋ณธ ๋ฐ์ดํฐ ๊ตฌ์กฐ ๋ฐ ๋ฐ์ดํฐ ์ ํ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๊ธฐ๋ณธ์ผ๋ก ์ ๊ณต๋ฉ๋๋ค.
-
์ฌ๊ธฐ์๋ boolean, null, number, string, ๊ธฐํ๋ฑ๋ฑ์ด ํฌํจ๋๋ค.
-
๊ธฐ๋ณธ์ด ์๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ์๋๋ผ ํ๋ก๊ทธ๋๋จธ์ ์ํด ์ ์๋ฉ๋๋ค.
-
์ฌ๊ธฐ์๋ ์ ํ ๋ฐ์ดํฐ ๊ตฌ์กฐ, ์ ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ, queue ๋ฐ linked-list์ ๊ฐ์ ๋์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ํฌํจ๋ฉ๋๋ค.
-
์ ํ : linked-list, stack, queue
-
๋น์ ํ : tree, graph
-
- Array
- ๋ชจ๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ ์ค ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋ฐฐ์ด์ ๋์ค์ ์ฌ์ฉํ ์ ์๋๋ก ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํฉ๋๋ค.
- ๊ฐ ๋ฐฐ์ด์๋ ์์ฑ์ ๊ฒฐ์ ๋ ๊ณ ์ ๋ ์์ ์ ์ด ์์ผ๋ฉฐ ๊ฐ ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ ํํ๋ ๋ฐ ์ฌ์ฉ๋๋ ํด๋น ์ซ์ ์ธ๋ฑ์ค๊ฐ ์์ต๋๋ค.
- ๋ฐฐ์ด๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์ ๋๋ง๋ค ์ํ๋ ์ธ๋ฑ์ค ๋ง ์์ผ๋ฉด๋๊ณ ๊ทธ ์์ ๋ชจ๋ ๋ฐ์ดํฐ์ ์ ๊ทผ ํ ์ ์์ต๋๋ค.
- ์ฅ์ : ๋ณต์กํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ์ํ ๊ธฐ๋ณธ ๊ตฌ์ฑ ์์๋ก์ ์์ฑ ๋ฐ ์ฌ์ฉ์ด ๊ฐ๋จ
- ๋จ์ : ๊ณ ์ ํฌ๊ธฐ, ๋นํจ์จ์ ์ธ ๋ถ๋ฅ, ๊ฐ์ ์ฝ์ / ์ญ์ ํ๊ฑฐ๋ ๋ค์ ์ ๋ ฌํ๋ ๋ฐ ๋ง์ ๋น์ฉ์ด ๋ญ๋๋ค.
- ํ์ฉ : ๊ธฐ๋ณธ์ ์ธ spreadsheets ์์ ์ฌ์ฉํ๊ฑฐ๋, ํด์ ํ ์ด๋ธ๊ณผ ๊ฐ์ ๋ณต์กํ ๊ตฌ์กฐ ๋ด์์ ์ฌ์ฉ.
-
- Stack & Queues
- ๋๋ค ์์ฐจ์ ๊ตฌ์กฐ
- Stack : LIFO(Last In First Out) : ํ์ ์ ์ถ : ๋์ค์ ๋ค์ด์จ๊ฒ์ด ๋จผ์ ๋๊ฐ๋ค
- Queue : FIFO(First In First OUT) : ์ ์ ์ ์ถ : ๋จผ์ ๋ค์ด์จ๊ฒ์ด ๋จผ์ ๋๊ฐ๋ค
- ์ฅ์ : ๋์ ํฌ๊ธฐ, ๋ฎ์ ๋ฐํ์
- ๋จ์ : ๊ฐ์ฅ์ค๋๋, ๊ฐ์ฅ ์ต๊ทผ ์์๋ง ๊ฒ์ํ ์์๋ค.
- ํ์ฉ : ํ๋ฒ์ 1๊ฐ์ง ์ฒ๋ฆฌ๋ฅผํ ๋ ์ฒ๋ฆฌ ๋์์ ์ฐ์ ์์๊ฐ ์๋๊ฒฝ์ฐ
-
- Linked List
- ๋ฉ๋ชจ๋ฆฌ์์ ๋ฌผ๋ฆฌ์ ๋ฐฐ์น๋ฅผ ์ฌ์ฉํ์ง ์๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ.
- ์ฆ, Linked List๋ ์์ธ์ด๋ ์์น๊ฐ ์๋ ์ฐธ์กฐ ์์คํ ์ ์ฌ์ฉํฉ๋๋ค.
- ์์๋ ๋ค์ ๋ ธ๋์ ๋ํ ํฌ์ธํฐ๋ฅผ ํฌํจํ๋ ๋ ธ๋์ ์ ์ฅ๋๋ฉฐ ๋ชจ๋ ๋ ธ๋๊ฐ ๋งํฌ ๋ ๋๊น์ง ๋ฐ๋ณต๋ฉ๋๋ค.
- ์ด ์์คํ ์ ์ฌ์ฉํ๋ฉด ์ฌ๊ตฌ์ฑ ํ ํ์์์ด ํญ๋ชฉ์ ํจ์จ์ ์ผ๋ก ์ฝ์ ํ๊ณ ์ ๊ฑฐ ํ ์ ์์ต๋๋ค.
- ์ฅ์ : ์๋ก์ด ์์์ ํจ์จ์ ์ธ ์ฝ์ ๋ฐ ์ ๊ฑฐ, array ์ฌ๊ตฌ์ฑ๋ณด๋ค ๋ ๋ณต์ก
- ๋จ์ : ๋ฐฐ์ด๋ณด๋ค ๋ ๋ง์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉ,ํน์ ์์๋ฅผ ๊ฒ์ํ๋ ๋ฐ ๋นํจ์จ์ , ๋ชฉ๋ก์ ๋ค๋ก ํ์ํ๋ ๊ฒ์ ๋นํจ์จ์
- ํ์ฉ : ์ ์์๋ ์์น์์ ๋ฐ์ดํฐ๋ฅผ ์ฐ์์ ์ผ๋ก ๋น ๋ฅด๊ฒ ์ถ๊ฐ ๋ฐ ์ ๊ฑฐํด์ผ ํ ๋ ๊ฐ์ฅ ์ ํฉ
-
- Trees
-
Trees๋ ํ์ฌ ์ง์ ์กฐ์ง ๊ตฌ์กฐ์ ๊ฐ์ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ๋ํ๋ด๋ ๋ฐ ํนํ๋ ๊ด๊ณ ๊ธฐ๋ฐ ๋ฐ์ดํฐ ๊ตฌ์กฐ(๋น์ ํ ๊ตฌ์กฐ)์ ๋๋ค.
-
Linked List์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ ธ๋์๋ ๋ฐ์ดํฐ ์์์ ์ง์ ๋ ธ๋์์ ๊ด๊ณ๋ฅผ ํ์ํ๋ ํฌ์ธํฐ๊ฐ ๋ชจ๋ ํฌํจ๋ฉ๋๋ค.
-
๊ฐ ํธ๋ฆฌ์๋ ๋ค๋ฅธ ๋ชจ๋ ๋ ธ๋๊ฐ ๋ถ๊ธฐ๋๋ "๋ฃจํธ"๋ ธ๋๊ฐ ์์ต๋๋ค.
-
๋ฃจํธ์๋ "ํ์ ๋ ธ๋"๋ผ๊ณ ํ๋ ๋ฐ๋ก ์๋์์๋ ๋ชจ๋ ์์์ ๋ํ ์ฐธ์กฐ๊ฐ ํฌํจ๋ฉ๋๋ค.
-
์ด๊ฒ์ ๊ฐ ์์ ๋ ธ๋์ ํจ๊ป ๋ ๋ง์ ์์ ๋ ธ๋๋ก ๋ถ๊ธฐ๋ฉ๋๋ค.
-
์ฐ๊ฒฐ๋ ์์ ๋ ธ๋๊ฐ์๋ ๋ ธ๋๋ฅผ ๋ด๋ถ ๋ ธ๋๋ผ๊ณ ํ๋ฉฐ ์์ ๋ ธ๋๊ฐ์๋ ๋ ธ๋๋ ์ธ๋ถ ๋ ธ๋๋ผ๊ณ ํฉ๋๋ค.
-
์ผ๋ฐ์ ์ธ ์ ํ์ ํธ๋ฆฌ๋ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ๊ฒ์ํ๋ ๋ฐ ์ฌ์ฉ๋๋ binary search tree ์ ๋๋ค.
-
์ด๋ฌํ ๊ฒ์ ์์ ์ ๊ฒ์ ๊ธฐ๊ฐ์ด ๋ ธ๋ ์๊ฐ ์๋๋ผ ํธ๋ฆฌ ์๋์ ์์ค ์์ ๋ฐ๋ผ ๋ฌ๋ผ ์ง๋ฏ๋ก ๋งค์ฐ ํจ์จ์ ์ ๋๋ค.
-
์ฅ์ : ๊ณ์ธต์ ๊ด๊ณ์ ์ฅ์ ์ด์์ . ๋์ ํฌ๊ธฐ. ๋น ๋ฅธ ์ฝ์ , ์ญ์ .
-
์ด์ง๊ฒ์ํธ๋ฆฌ๋ ๊ฒ์์ ํจ์จ์ . ์๊ฐ๋ณต์ก๋ : O(height)
-
๋จ์ : ์ฌ๋ฐฐ์ด ์๋๊ฐ ๋๋ฆฌ๋ค. ์์ ๋ ธ๋์๊ฒ ๋ถ๋ชจ๋ ธ๋์ ์ ๋ณด๊ฐ ์๋ค. ํด์ํ ์ด๋ธ๋ณด๋ค ๋น๊ต์ ๋๋ฆฌ๋ค.
-
- Graphs
- ๊ด๊ณ ๊ธฐ๋ฐ ๋ฐ์ดํฐ ๊ตฌ์กฐ.
- ๊ทธ๋ํ์์ ํธ์ถ๋๋ ๊ฐ ๋ ธ๋ ๋๋ ์ ์ ์๋ ์ ๋ชฉ (A, B, C ๋ฑ), ๋ด๋ถ์ ํฌํจ ๋ ๊ฐ ๋ฐ ๋ค๋ฅธ ์ ์ ๊ณผ์ ๋งํฌ ๋ชฉ๋ก(edges))์ด ์์ต๋๋ค.
- ๊ด๊ณ : Undirected(์๋ฐฉํตํ), Directed(๋ฐฉํฅ์ฑ)
- ์ฒ์์๋ ์๊ฐํํ๊ธฐ ์ด๋ ต์ง๋ง, ์ด ๊ตฌ์กฐ๋ ํ๋ก์์ ํ๋ จ ๋คํธ์ํฌ์ ์ด๋ฅด๊ธฐ๊น์ง ๊ด๊ณ ์ฐจํธ๋ฅผ ํ ์คํธ ํ์์ผ๋ก ์ ๋ฌํ๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค.
-
๊ผญ์ง์ , ์ ์ : vertex(vertices), node(nodes)
-
๋ณ, ๊ฐ์ : edge
-
adjacent vertex(์ธ์ ์ ์ ) : edge๋ก ์ฐ๊ฒฐ๋ vertex
-
degree(์ฐจ์-๋ฑ๊ธ-๊ณ๊ธ)
-
- undirected graph ์์๋ ์ฐ๊ฒฐ๋ edge์ ์
-
- directed graph ์์๋ vertex ๊ธฐ์ค.
- in-degree : ์ ๋ ฅ์ฐจ์ : vertex๊ฐ ๋ฐฉํฅ์ ๋์์ด ๋๋ edge์ ์
- out-degree : ์ถ๋ ฅ์ฐจ์ : vertex๊ฐ ์์์ ๋์์ด ๋๋ edge์ ์
-
-
cycle : vertex๊ฐ ๊ฒฝ๋ก์ ์ถ๋ฐ์๊ณผ ๋์์ ๋์ฐฉ์ ๋์์ด ๋ ๊ฒฝ์ฐ
-
complete graph : ๋ชจ๋ vertex๊ฐ ์๋ก directํ๊ฒ adjacent vertex ์ธ ๊ฒฝ์ฐ
-
weighted graph : edge์ ๊ฐ์ค์น๊ฐ ์กด์ฌํ ๊ฒฝ์ฐ
-
์ฅ์ : ํ ์คํธ๋ฅผ ํตํด ์๊ฐ์ ์ผ๋ก ๋น ๋ฅด๊ฒ ์ ๋ฌ, ๋ง์ ์ ๋ณด๋ฅผ ํฌํจํ๊ณ ์๋ ๊ด๊ณํ ๊ตฌ์กฐ๋ฅผ ํํํด์ผํ๋ ์ฃผ์ ์ ์ ํฉ
-
๋จ์ : ๋์ ์์ค์์๋ ํ ์คํธ๋ฅผ ์ด๋ฏธ์งํ ํ๊ธฐ ์ด๋ ต๋ค.
-
ํ์ฉ : ๋คํธ์ํฌ ํํ
-
- Hash Tables (Map)