ํ์ ์๋ฃ๊ตฌ์กฐ 8๊ฐ
Array
, Linked List
, Stack
, Queue
, Hash Table
, Graph
, Tree
, Heap
1. Array List (๋ฐฐ์ด)
์
๋ ฅ๋ ๋ฐ์ดํฐ๋ค์ด ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์์ ์ฐ์์ ์ผ๋ก ์ ์ฅ๋์ด ์๋ ์๋ฃ๊ตฌ์กฐ
- stack
- ๋ฐฐ์ด์ ํฌ๊ธฐ๋ ์ฒ์ ์์ฑํ ๋ ์ ํ๋ฉฐ, ์ดํ์๋ ๋ณ๊ฒฝํ ์ ์๋ค.
- ๋ฉ๋ชจ๋ฆฌ ์์์ ์ฐ์์ ์ผ๋ก ์ ์ฅ๋์ด ์๋ ํน์ง์ ๊ฐ์ง๊ธฐ ๋๋ฌธ์ index๋ฅผ ํตํ ์ ๊ทผ์ด ์ฉ์ดํ๋ค.
- ์ฅ์ : ์ธ๋ฑ์ค๋ฅผ ํตํด ๋ฐ์ดํฐ์ ๋น ๋ฅธ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค.
- ๋จ์ : ์ฝ์
/์ญ์ ์ฐ์ฐ์์ ๋ค๋ฅธ ๋ฐ์ดํฐ๋ค์ ์ด๋์์ผ์ผ ํ๊ธฐ ๋๋ฌธ์ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฐ๋ค.
- ์๊ฐ ๋ณต์ก๋
- ํ์
- ์ ๊ทผํ๊ณ ์ ํ๋ ์ธ๋ฑ์ค๋ฅผ ์๊ณ ์์ ๊ฒฝ์ฐ: O(1)
- ์ธ๋ฑ์ค ๋ชจ๋ฅด๊ณ ์์ ๊ฒฝ์ฐ: O(n) โ ํ์ ์๊ฐ ์์
- ์ฝ์
/์ญ์
- ๋ฐฐ์ด์ ์ฒ์ ๋๋ ์ค๊ฐ์ ํ ๊ฒฝ์ฐ: O(n)
์ฝ์
์ง์ ์ดํ์ ๋ฐ์ดํฐ๋ฅผ ์ฎ๊ฒจ์ผ ํ๊ธฐ ๋๋ฌธ์ ์ ์ฒด ํ์ํด์ผ ํจ
- ๋ฐฐ์ด์ ๋์ ํ ๊ฒฝ์ฐ: O(1)
2. Linked List (์ฐ๊ฒฐ ๋ฆฌ์คํธ)
์ฌ๋ฌ ๊ฐ์ ๋
ธ๋๋ค์ด ์์ฐจ์ ์ผ๋ก ์ฐ๊ฒฐ๋ ํํ์ ์๋ฃ๊ตฌ์กฐ
- heap
- ์ฒซ๋ฒ์งธ ๋
ธ๋๋ฅผ head, ๋ง์ง๋ง ๋
ธ๋๋ฅผ tail ์ด๋ผ๊ณ ํ๋ค.
- ๊ฐ ๋
ธ๋๋
๋ฐ์ดํฐ
์ ๋ค์ ๋
ธ๋๋ฅผ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ
๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
- ๋ฐฐ์ด๊ณผ๋ ๋ค๋ฅด๊ฒ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฐ์์ ์ผ๋ก ์ฌ์ฉํ์ง ์๋๋ค. (์์ X)
- ๋ฐฐ์ด๊ณผ๋ ๋ค๋ฅด๊ฒ ์์ฐจ์ ์ผ๋ก ์ ๊ทผํด์ผ ํ๋ ๋ฉด์์ ๋ถ๋ฆฌํ ์๋ ์์ผ๋, ๋
ธ๋๊ฐ ์ฐ๊ฒฐ๋ ๊ตฌ์กฐ์ด๊ธฐ ๋๋ฌธ์ ์ฝ์
, ์ญ์ ์ ์ฉ์ดํ๋ค.
- Tree ๊ตฌ์กฐ์ ๊ทผ๊ฐ์ด ๋๋ ์๋ฃ๊ตฌ์กฐ์ด๋ฉฐ, Tree์์ ์ฌ์ฉ๋์์ ๋ ๊ทธ ์ ์ฉ์ฑ์ด ๋๋ฌ๋๋ค.
- ์๊ฐ ๋ณต์ก๋
- ํ์
- O(n) (์ฒ์๋ถํฐ ์ํํด์ผํ๋ฏ๋ก์ฟ ํค..)
- ์ฝ์
/์ญ์ โ ์ฝ์
๊ณผ ์ญ์ ์์ฒด๋ O(1)..
- ์ฐ๊ฒฐ๋ฆฌ์คํธ์ ์ฒ์์ ์ฝ์
/์ญ์ : O(1)
- ์ฐ๊ฒฐ๋ฆฌ์คํธ์ ์ค๊ฐ์ ์ฝ์
/์ญ์ : O(n) โ ํ์ ์๊ฐ ์์
- ์ฐ๊ฒฐ๋ฆฌ์คํธ์ ๋์ ์ฝ์
/์ญ์
- ๋์ ๊ฐ๋ฆฌํค๋ ๋ณ๋์ ํฌ์ธํฐ(tail)๋ฅผ ๊ฐ๋ ๊ฒฝ์ฐ: O(1)
- ๋์ ๊ฐ๋ฆฌํค๋ ๋ณ๋์ ํฌ์ธํฐ๊ฐ ์๋ ๊ฒฝ์ฐ: O(n) โ ํ์ ์๊ฐ ์์
+ ์ด์ค ์ฐ๊ฒฐ ๋ฆฌ์คํธ (Doubly Linked List)
์ฐ๊ฒฐ ๋ฆฌ์คํธ์ ๋ค๋ฅด๊ฒ prev, next node๋ฅผ ๋ชจ๋ ๊ฐ์ง๊ณ ์์ด ์ /ํ๋ก ํ์์ด ๊ฐ๋ฅํ ์๋ฃ๊ตฌ์กฐ
- ์ฅ์ : ๋จ์ ์ฐ๊ฒฐ ๋ฆฌ์คํธ์์๋ ์ต์
์ ๊ฒฝ์ฐ n๋ฒ์ ํ์ํด์ผ ํ์ง๋ง, ์ด์ค ์ฐ๊ฒฐ ๋ฆฌ์คํธ์์๋ ์ป๊ณ ์ ํ๋ ๋ฐ์ดํฐ์ ์์น๊ฐ tail์ ๊ฐ๊น๋ค๋ฉด ์ญ๋ฐฉํฅ์ผ๋ก ํ์์ด ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ (prev ํ๊ณ ..ํ๊ณ ..) ํ์ ์๊ฐ์ ์ค์ผ ์ ์๋ค.
๋ฐฐ์ด vs ์ฐ๊ฒฐ ๋ฆฌ์คํธ
๋ฐฐ์ด์ ์ฅ๋จ์
- ์ฅ์
- ์ธ๋ฑ์ค๋ฅผ ํตํ ๋น ๋ฅธ ์ ๊ทผ ๊ฐ๋ฅ
- ๋จ์
- ์ฝ์
/์ญ์ ๊ฐ ์ค๋ ๊ฑธ๋ฆผ โ ๋ค๋ฅธ ๋ฐ์ดํฐ์ ์ธ๋ฑ์ค๋ฅผ ๋ชจ๋ ์ด๋์์ผ์ผํ๊ธฐ ๋๋ฌธ์..
- ๋ฐฐ์ด ์ค๊ฐ์ ์๋ ๋ฐ์ดํฐ๊ฐ ์ญ์ ๋๋ฉด ๊ณต๊ฐ ๋ญ๋น๊ฐ ๋ฐ์ํจ
- ์ฉ๋
- ๋น ๋ฅธ ์ ๊ทผ ์๊ตฌ + ๋ฐ์ดํฐ์ ์ฝ์
, ์ญ์ ์ ์ ๋
์ฐ๊ฒฐ๋ฆฌ์คํธ์ ์ฅ๋จ์
- ์ฅ์
- next node๋ฅผ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ์ฝ์
๊ณผ ์ญ์ ์ ์ฉ์ดํจ
- ๋จ์
- ๋ณ๋์ ์ธ๋ฑ์ค๊ฐ ์๊ธฐ ๋๋ฌธ์ ์์ ์ ๊ทผ์ด ๋ถ๊ฐ๋ฅํ์ฌ ์ฒ์๋ถํฐ ํ์์ ์งํํด์ผ ํจ โ ํ์ ์๊ฐ ์์
- ์ฉ๋
- ์ฝ์
๊ณผ ์ญ์ ์ฐ์ฐ์ด ์ฆ์ + ๊ฒ์ ๋น๋๊ฐ ์ ์ ๋
3. Stack (์คํ)
์์๊ฐ ๋ณด์กด๋๋ ์ ํ ์๋ฃ๊ตฌ์กฐ
- LIFO(Last In First Out) ๊ตฌ์กฐ
- ํจ์ ํธ์ถ ๋ฑ ์คํ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ์ ์ฌ์ฉ๋๋ค.
- ๊ฐ์ ๊ตฌ์กฐ์ ๊ฐ์ ํฌ๊ธฐ์ ์๋ฃ๋ฅผ ์ ํด์ง ๋ฐฉํฅ์ผ๋ก๋ง ์์ ์ ์๋ค.
- top์ผ๋ก ์ ํ ๊ณณ์ ํตํด์๋ง ์ ๊ทผ ๊ฐ๋ฅํ๋ค.
์คํ์ top์ ๊ฐ์ฅ ๋ง์ง๋ง์ ์์ธ data ์์น!!!!
- ์ญ์ ๋ top์ ํตํด์๋ง ๊ฐ๋ฅํ๋ค.
- push๋ pop์ ํ ๋ ํด๋น ๊ฐ์ ์์น๋ฅผ ์๊ณ ์์ด์ผ ํ๋๋ฐ, ์คํ ํฌ์ธํฐ(sp)๊ฐ ์์น๋ฅผ ๊ธฐ์ตํ๋ค. ์ฒ์ ๊ธฐ๋ณธ ๊ฐ์ -1
- ์คํ์ ํ์ฉ ์์
- ์น ๋ธ๋ผ์ฐ์ ๋ฐฉ๋ฌธ๊ธฐ๋ก (๋ค๋ก๊ฐ๊ธฐ): ๊ฐ์ฅ ๋์ค์ ์ด๋ฆฐ ํ์ด์ง๋ถํฐ ๋ค์ ๋ณด์ฌ์ค
- ์ญ์ ๋ฌธ์์ด ๋ง๋ค๊ธฐ: ๊ฐ์ฅ ๋์ค์ ์
๋ ฅ๋ ๋ฌธ์๋ถํฐ ์ถ๋ ฅ
- ์คํ ์ทจ์ (undo): ๊ฐ์ฅ ๋์ค์ ์คํ๋ ๊ฒ๋ถํฐ ์คํ ์ทจ์
- ํ์ ํ๊ธฐ๋ฒ ๊ณ์ฐ
- ์ฌ๊ท ํจ์(recursive call)
4. Queue (ํ)
์์๊ฐ ๋ณด์กด๋๋ ์ ํ ์๋ฃ๊ตฌ์กฐ
- FIFO(First In First Out) ๊ตฌ์กฐ
- Java Collection์์ Queue๋ ์ธํฐํ์ด์ค๋ค.
- ๊ฐ์ฅ ์ฒซ ์์๋ฅผ
front
, ๋ ์์๋ฅผ rear
๋ผ๊ณ ํ๋ค.
- front์ rear๋ก๋ง ์ ๊ทผ ๊ฐ๋ฅ
- ๋ฐ์ดํฐ๋ฅผ ๋ฃ๊ณ ๋บ ๋ ํด๋น ๊ฐ์ ์์น๋ฅผ ๊ธฐ์ตํด์ผ ํจ(์คํ ํฌ์ธํฐ์ ๊ฐ์ ์ญํ )
- ํ์ ํ์ฉ ์์
- ๋๊ธฐ ๋ฒํธํ
- ๋ฌผํ ์ง์ด
- BFS ๊ตฌํ
- ํ๋ฆฐํฐ ์ถ๋ ฅ ์ฒ๋ฆฌ
- ์ฝ์ผํฐ ๊ณ ๊ฐ ๋๊ธฐ์๊ฐ
5. Heap (ํ)
์์ ์ด์งํธ๋ฆฌ(Binary Tree)์ ์ผ์ข
- ์ฌ๋ฌ ๊ฐ ์ค ์ต๋๊ฐ๊ณผ ์ต์๊ฐ์ ๋น ๋ฅด๊ฒ ์ฐพ์๋ด๋๋ก ๋ง๋ค์ด์ง ์๋ฃ ๊ตฌ์กฐ
- ์ฐ์ ์์ ํ๋ฅผ ์ํด ๋ง๋ค์ด์ง ์๋ฃ๊ตฌ์กฐ
- ์ฐ์ ์์ ํ?
- ๋ฐ์ดํฐ๋ค์ด ์ฐ์ ์์๋ฅผ ๊ฐ์ง๊ณ ์๊ณ , ์ฐ์ ์์๊ฐ ๋์ ๋ฐ์ดํฐ๊ฐ ๋จผ์ ์ญ์ !
- CPU ์์
์ค์ผ์ค๋ง, ์๋ฎฌ๋ ์ด์
์์คํ
์์ ์ฌ์ฉ
- ์๊ฐ๋ณต์ก๋: O(logn)
- ํ์ ์ ์ฅํ๋ ํ์ค์ ์ธ ์๋ฃ๊ตฌ์กฐ๋ ๋ฐฐ์ด
- ์ค๋ณต ๊ฐ์ ํ์ฉํ๋ค.
- ๋ฐ ์ ๋ ฌ ์ํ๋ฅผ ์ ์งํ๋ค.
- ํ ์ข
๋ฅ
- ์ต๋ ํ(max heap)
- ๋ถ๋ชจ ๋
ธ๋์ ํค ๊ฐ์ด ์์ ๋
ธ๋์ ํค ๊ฐ๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์ ์์ ์ด์งํธ๋ฆฌ
- ๋ถ๋ชจ key โฅ ์์ key
- ์ต์ ํ(min heap)
- ๋ถ๋ชจ ๋
ธ๋์ ํค ๊ฐ์ด ์์ ๋
ธ๋์ ํค ๊ฐ๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ ์ด์งํธ๋ฆฌ
- ๋ถ๋ชจ key โค ์์ key
- ํ ์ฐ์ฐ
- ์ฝ์
- ํ์ ์๋ก์ด ์์๊ฐ ๋ค์ด์ค๋ฉด, ์ผ๋จ ์๋ก์ด ๋
ธ๋๋ฅผ ํ์ ๋ง์ง๋ง ๋
ธ๋์ ์ฝ์
- ์๋ก์ด ๋
ธ๋๋ฅผ ๋ถ๋ชจ ๋
ธ๋๋ค๊ณผ ๊ตํ
- ์ญ์
- ์ต๋ ํ์์ ์ต๋๊ฐ์ ๋ฃจํธ ๋
ธ๋์ด๋ฏ๋ก ๋ฃจํธ ๋
ธ๋๊ฐ ์ญ์ ๋จ
(์ต๋ ํ์์ ์ญ์ ์ฐ์ฐ์ ์ต๋๊ฐ ์์๋ฅผ ์ญ์ ํ๋ ๊ฒ!)
- ์ญ์ ๋ ๋ฃจํธ ๋
ธ๋์๋ ํ์ ๋ง์ง๋ง ๋
ธ๋๋ฅผ ๊ฐ์ ธ์ด
- ํ์ ์ฌ๊ตฌ์ฑํจ
6. Tree (ํธ๋ฆฌ)
๋
ธ๋๋ค์ด ๋๋ฌด ๊ฐ์ง์ฒ๋ผ ์ฐ๊ฒฐ๋ ๋น์ ํ ๊ณ์ธต์ ์๋ฃ๊ตฌ์กฐ.
= ๊ทธ๋ํ๊ฐ ๊ณ์ธต์ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง ํํ
- ์ฌ์ค ํธ๋ฆฌ๋ ๊ทธ๋ํ์ ์ผ์ข
์ด๋ค.
- ํธ๋ฆฌ ๋ด์ ๋ค๋ฅธ ํ์ ํธ๋ฆฌ๊ฐ ์๊ณ , ๊ทธ ํ์ ํธ๋ฆฌ ์์ ๋ ๋ค๋ฅธ ํ์ ํธ๋ฆฌ๊ฐ ์๋ ์ฌ๊ท์ ์๋ฃ๊ตฌ์กฐ์ด๋ค.
- ๋จ์ ์ํ(loop)๋ฅผ ๊ฐ์ง์ง ์๊ณ , ์ฐ๊ฒฐ๋ ๋ฌด๋ฐฉํฅ ๊ทธ๋ํ ๊ตฌ์กฐ์ด๋ค.
- ์ต์์ ๋
ธ๋(๋ฃจํธ)๋ฅผ ๊ฐ์ง๋ค
- ์์ ๋
ธ๋๋ฅผ ๋ถ๋ชจ(parent)๋
ธ๋, ํ์ ๋
ธ๋๋ฅผ ์์(child)๋
ธ๋๋ผ ํ๋ค.
- ์ฅ์ : ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ฒ์ํ ์ ์๋ค.
- ๋จ์ : ์ฝ์
, ์ญ์ ์ ๋ง์ ์์ ๋
ธ๋๋ฅผ ์ด๋ํด์ผํ๊ธฐ์ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฐ๋ค.
- ํธ๋ฆฌ์ ํ์ฉ ์์
- ์ปดํจํฐ์ directory ๊ตฌ์กฐ
- ํ๋ ํธ๋ฆฌ๋ก ๋ ์๋ฃ๊ตฌ์กฐ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ๋ฑ์ฑ
ex) B-Tree, B+Tree, AVL-Tree..
- Trie: ์ฌ์ , ์ ํ๋ฒํธ๋ถ?
7. Graph (๊ทธ๋ํ)
์ ์ (Node or Vertext)๊ณผ ๊ฐ์ฒด๋ฅผ ์ฐ๊ฒฐํ๋ ๊ฐ์ (Edge)์ผ๋ก ์ด๋ฃจ์ด์ง ๋น์ ํ ์๋ฃ๊ตฌ์กฐ
- ๊ทธ๋ํ G๋ฅผ G=(V,E)๋ก ์ ์ํ๋๋ฐ, V๋ ์ ์ ์ ์งํฉ, E๋ ๊ฐ์ ๋ค์ ์งํฉ์ ์๋ฏธํ๋ค.
- ํธ๋ฆฌ๋ ๊ทธ๋ํ์ ์ผ์ข
์ด์ง๋ง ๊ทธ๋ํ๋ ํธ๋ฆฌ์ ๋ฌ๋ฆฌ ์ ์ ๋ง๋ค ๊ฐ์ ์ด ์กด์ฌํ์ง ์์ ์๋ ์์ผ๋ฉฐ, ๋ฃจํธ ๋
ธ๋์ ๋ถ๋ชจ ๋
ธ๋, ์์ ๋
ธ๋์ ๊ฐ๋
์ด ์กด์ฌํ์ง ์๋๋ค.
- ๊ทธ๋ํ์ ํ์ฉ ์์
- ์งํ์ฒ ๋
ธ์ ๋ ์ต๋จ ๊ฒฝ๋ก
- ๋๋ก
- ์ ์ ๊ณผ๋ชฉ
๊ทธ๋ํ ๊ตฌํ ๋ฐฉ๋ฒ
๊ทธ๋ํ๋ ์ธ์ ํ๋ ฌ
๋๋ ์ธ์ ๋ฆฌ์คํธ
๋ก ๊ตฌํํ ์ ์๋ค.
1. ์ธ์ ํ๋ ฌ
์ธ์ ํ๋ ฌ์ด๋ ๊ทธ๋ํ์ ์ ์ ์ 2์ฐจ์ ๋ฐฐ์ด๋ก ๋ง๋ ๊ฒ์ด๋ค.
์ ์ ๊ฐ์ ์ง์ ์ฐ๊ฒฐ๋์ด ์๋ค๋ฉด 1 , ์๋๋ผ๋ฉด 0 ์ ์ ์ฅํ๋ค.
์ฅ์
- 2์ฐจ์ ๋ฐฐ์ด์ ๋ชจ๋ ์ ์ ์ ๊ฐ์ ์ ๋ณด๊ฐ ๋ด๊ฒจ์๊ธฐ ๋๋ฌธ์ ๋ ์ ์ ์ ๋ํ ์ฐ๊ฒฐ์ ์กฐํํ ๋๋ O(1)O(1) ์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ค.
- ์ธ์ ๋ฆฌ์คํธ์ ๋นํด ๊ตฌํ์ด ์ฝ๋ค.
๋จ์
- ๋ชจ๋ ์ ์ ์ ๋ํด ๊ฐ์ ์ ๋ณด๋ฅผ ์
๋ ฅํด์ผ ํ๋ฏ๋ก ์ธ์ ํ๋ ฌ์ ์์ฑํ ๋๋ O(n2)O(n2) ์ ์๊ฐ ๋ณต์ก๋๊ฐ ์์๋๋ค.
- ํญ์ 2์ฐจ์ ๋ฐฐ์ด์ด ํ์ํ๋ฏ๋ก ํ์ ์ด์์ ๊ณต๊ฐ์ด ๋ญ๋น๋๋ค.
2. ์ธ์ ๋ฆฌ์คํธ
์ธ์ ๋ฆฌ์คํธ๋ ๊ทธ๋ํ์ ๋
ธ๋๋ฅผ ๋ฆฌ์คํธ๋ก ํํํ ๊ฒ์ด๋ค. ์ฃผ๋ก ์ ์ ์ ๋ฆฌ์คํธ ๋ฐฐ์ด์ ๋ง๋ค์ด์ ๊ด๊ณ๋ฅผ ์ค์ ํ๋ค.
์ฅ์
- ์ ์ ๋ค์ ์ฐ๊ฒฐ ์ ๋ณด๋ฅผ ํ์ํ ๋ O(n) ์๊ฐ ๋ณต์ก๋๊ฐ ์์๋๋ค. (n ์ ๊ฐ์ ์ ๊ฐฏ์)
- ํ์ํ ๋งํผ ๊ณต๊ฐ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ธ์ ํ๋ ฌ์ ๋นํด ์๋์ ์ผ๋ก ๊ณต๊ฐ์ ๋ญ๋น๊ฐ ์ ๋ค.
๋จ์
- ํน์ ๋ ์ ์ ์ด ์ฐ๊ฒฐ๋์ด ์๋์ง ํ์ธํ๊ธฐ ์ํด์๋ ์ธ์ ํ๋ ฌ์ ๋นํด ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฐ๋ค.
- ๊ตฌํ์ด ์ธ์ ํ๋ ฌ์ ๋นํด ์ด๋ ต๋ค.
๊ทธ๋ํ ํ์
1. ๊น์ด ์ฐ์ ํ์ (DFS)
๊ฐ ์ ์๋ ๋งํผ ์ต๋ํ ๊น์ด ๊ฐ๊ณ , ๋ ์ด์ ๊ฐ ๊ณณ์ด ์๋ค๋ฉด ์ด์ ์ ์ ์ผ๋ก ๋์๊ฐ๋ ๋ฐฉ์์ผ๋ก ๊ทธ๋ํ๋ฅผ ์ํํ๋ค.
์ฃผ๋ก ์ฌ๊ท ํธ์ถ
๊ณผ ์คํ
์ ์ฌ์ฉํด์ ๊ตฌํํ๋ค.
2. ๋๋น ์ฐ์ ํ์ (BFS)
์์ ์ ์ ์ ๋ฐฉ๋ฌธํ ํ, ์์ ์ ์ ์ ์ธ์ ํ ๋ชจ๋ ์ ์ ์ ๋ฐฉ๋ฌธํ๋ค.
์ธ์ ํ ์ ์ ์ ๋ฐฉ๋ฌธํ ๋ค, ๋ค์ ํด๋น ์ ์ ์ ์ธ์ ํ ์ ์ ์ ๋ฐฉ๋ฌธํ๋ฉฐ ๊ทธ๋ํ๋ฅผ ์ํํ๋ค.
์ฃผ๋ก ํ
์ ๋ฐ๋ณต๋ฌธ
์ ์ฌ์ฉํด์ ๊ตฌํํ๋ค.
8. Hash Table (ํด์ ํ
์ด๋ธ)
(key, value)๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์๋ฃ๊ตฌ์กฐ
- key๊ฐ์ ํด์ํจ์๋ฅผ ์ ์ฉํด ๊ณ ์ ํ index๋ฅผ ์์ฑํ์ฌ ๊ทธ index์ ์ ์ฅ๋ ๊ฐ์ ๊บผ๋ด์ค๋ ๊ตฌ์กฐ์ด๋ค.
- ์ฅ์
- ๋ฐ์ดํฐ์ ํฌ๊ธฐ์ ๊ด๊ณ์์ด ์ฝ์
๋ฐ ๊ฒ์์ ๋งค์ฐ ํจ์จ์
- ๋น ๋ฅธ ๋ฐ์ดํฐ ๊ฒ์ ๊ฐ๋ฅ
- ๋จ์
- ์ถฉ๋์ด ๋ฐ์ํ๋ ๊ฒฝ์ฐ ์ฑ๋ฅ ์ ํ
- ํด๊ฒฐ ๋ฐฉ์ ์์๋ณด๊ธฐ.......
- ์๊ฐ ๋ณต์ก๋
- O(1)
- index ์ถฉ๋์ด ๋ฐ์ํ ๊ฒฝ์ฐ: O(n)