diff --git "a/DataStructure/\352\267\270\353\236\230\355\224\204/\352\267\270\353\236\230\355\224\204_\354\230\210\354\247\200.md" "b/DataStructure/\352\267\270\353\236\230\355\224\204/\352\267\270\353\236\230\355\224\204_\354\230\210\354\247\200.md"
new file mode 100644
index 0000000..42636c1
--- /dev/null
+++ "b/DataStructure/\352\267\270\353\236\230\355\224\204/\352\267\270\353\236\230\355\224\204_\354\230\210\354\247\200.md"
@@ -0,0 +1,157 @@
+## ๐ ํ์ต ์ฃผ์
+
+- **์ฃผ์ **: ๊ทธ๋ํ
+- **๋ ์ง**: 2024.10.21 - 2024.10.27
+
+---
+
+## ๐ ํ์ต ๋ด์ฉ ์์ฝ
+
+### [๊ทธ๋ํ]
+
+- `๊ทธ๋ํ`: ์ ์ ์ด๋ผ ๋ถ๋ฆฌ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ํน์ ๋งํฌ๋ก ์ฐ๊ฒฐํ ํํ์ ์๋ฃ๊ตฌ์กฐ
+ - ํธ๋ฆฌ์์ ์ฐจ์ด์
+ - ํธ๋ฆฌ๋ ์ฌ์ดํด์ ํ์ฑํ์ง ์๊ณ ์ฐ๊ฒฐ๋ ๋
ธ๋ ๊ฐ์ ์ํ ๊ด๊ณ๋ฅผ ๊ฐ์ง
+ - ๊ทธ๋ํ๋ ์ฌ์ดํด์ ํ์ฑํ ์ ์๊ณ , ์ ์ ๋ผ๋ฆฌ ์ํ ๊ด๊ณ๋ฅผ ๊ฐ์ง ์์
+ - ๊ทธ๋ํ์ ์ ํ
+ - `์ฐ๊ฒฐ/๋น์ฐ๊ฒฐ ๊ทธ๋ํ`
+ - `๋ฐฉํฅ/๋ฌด๋ฐฉํฅ ๊ทธ๋ํ`
+ - `๊ฐ์ค์น ๊ทธ๋ํ`
+ - `์๋ธ๊ทธ๋ํ`
+
+---
+
+### ๊ทธ๋ํ์ ์ ํ
+
+- `์ฐ๊ฒฐ ๊ทธ๋ํ` : ๊ทธ๋ํ ์์ ์๋ ์์์ ๋ ์ ์ ์ฌ์ด์ ๊ฒฝ๋ก๊ฐ ์กด์ฌํ๋ ๊ทธ๋ํ
+ - 2๊ฐ์ ์๋ฌด ์ ์ ์ด๋ ๊ณจ๋ผ ๊ฐ์ ์ผ๋ก ์ด์ ์ ์์ผ๋ฉด `์ฐ๊ฒฐ ๊ทธ๋ํ`
+- `๋น์ฐ๊ฒฐ ๊ทธ๋ํ` : ์ด๋ค ์ ์ ์ฌ์ด์๋ ๊ฒฝ๋ก๊ฐ ์กด์ฌํ์ง ์์ ์๋ ์๋ ๊ทธ๋ํ
+
+ 
+
+- `๋ฐฉํฅ๊ทธ๋ํ` : ๊ฐ์ ์ ๋ฐฉํฅ์ด ์๋ ๊ทธ๋ํ
+- `๋ฌด๋ฐฉํฅ๊ทธ๋ํ` : ๊ฐ์ ์ ๋ฐฉํฅ์ด ์๋ ๊ทธ๋ํ
+
+
+
+- `๊ฐ์ค์น ๊ทธ๋ํ` : ๊ฐ์ ์ ๊ฐ์ค์น๊ฐ ๋ถ์ฌ๋ ๊ทธ๋ํ
+ - ๊ฐ์ ์ ๋ถ์ฌ๋ ๊ฐ = ๊ฐ์ค์น = ๋น์ฉ
+
+
+
+- `์๋ธ ๊ทธ๋ํ` : ํน์ ๊ทธ๋ํ์ ์ ์ ๊ณผ ๊ฐ์ ์ ์ผ๋ถ๋ถ์ผ๋ก ์ด๋ฃจ์ด์ง ๊ทธ๋ํ
+
+
+
+---
+
+### ๊ทธ๋ํ์ ํํ
+
+- **์ธ์ ํ๋ ฌ ๊ธฐ๋ฐ ๊ทธ๋ํ ํํ** : N x N ํฌ๊ธฐ์ ํ๋ ฌ๋ก ๊ทธ๋ํ๋ฅผ ํํํ๋ ๋ฐฉ๋ฒ
+
+ - N์ ์ ์ ์ ๊ฐ์
+ - <ํ, ์ด> ๊ฐ์ <์ถ๋ฐ์ ์ , ๋์ฐฉ์ ์ >
+
+- **์ธ์ ๋ฆฌ์คํธ ๊ธฐ๋ฐ ๊ทธ๋ํ ํํ** : ๊ทธ๋ํ์ ํน์ ์ ์ ๊ณผ ์ฐ๊ฒฐ๋ ์ ์ ๋ค์ ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ก ํํํ๋ ๋ฐฉ๋ฒ
+
+
+
+---
+
+### ํ์ ์๊ณ ๋ฆฌ์ฆ
+
+-**๊น์ด ์ฐ์ ํ์(DFS)** : ๋ ์ด์ ๋ฐฉ๋ฌธ ๊ฐ๋ฅํ ์ ์ ์ด ์์ ๋๊น์ง ์ต๋ํ ๊น์ด ํ์ํ๊ธฐ๋ฅผ ๋ฐ๋ณตํ๋ ํ์๋ฐฉ๋ฒ
+
+
+
+- **๋๋น ์ฐ์ ํ์(BFS)** : ์ต๋ํ ๋๊ฒ ํ์ํ๊ธฐ๋ฅผ ๋ฐ๋ณตํ๋ ๋ฐฉ๋ฒ, ์ธ์ ํ ๋ชจ๋ ์ ์ ๋ค์ ๋ฐฉ๋ฌธํ๊ณ , ๋ฐฉ๋ฌธํ ์ ์ ๋ค๊ณผ ์ฐ๊ฒฐ๋ ๋ชจ๋ ์ ์ ์ ๋ฐฉ๋ฌธ, ๋ฐฉ๋ฌธํ ์ ์ ๋ค๊ณผ ์ฐ๊ฒฐ๋ ๋ชจ๋ ์ ์ ๋ค์ ๋ฐฉ๋ฌธํ๊ธฐ๋ฅผ ๋ฐ๋ณตํ๋ ํ์ ๋ฐฉ๋ฒ
+
+- DFS -> ๋ฐฐ์ด / ์คํ ์ฌ์ฉ
+ - ๋ฐฐ์ด : ํน์ ์ ์ ์ ๋ฐฉ๋ฌธ ์ฌ๋ถ ํ์ธ
+ - ์คํ : ๋ฐฉ๋ฌธ ์ค ๋ค๋ก๊ฐ๊ธฐ๊ฐ ํ์ํ ๊ฒฝ์ฐ
+- BFS -> ๋ฐฐ์ด / ํ ์ฌ์ฉ
+
+ - ๋ฐฐ์ด : ํน์ ์ ์ ์ ๋ฐฉ๋ฌธ ์ฌ๋ถ ํ์ธ
+ - ํ : ์ฐ๊ฒฐ๋ ์ ์ ๋ค์ ์ ์ฅํ๊ธฐ ์ํด ์ฌ์ฉ
+
+### ์ต๋จ ๊ฒฝ๋ก ์๊ณ ๋ฆฌ์ฆ
+
+- ํ ์ ์ ์์ ๋ชฉ์ ์ง ์ ์ ๊น์ง์ด๋ฅด๋ ๊ฐ์ค์น์ ํฉ์ด ์ต์๊ฐ ๋๋ ๊ฒฝ๋ก
+
+ - ํ์ฉ
+
+ - ์ง๋ ์๋น์ค(๋ชฉ์ ์ง๊น์ง ์ด๋ฅด๋ ์ต๋จ๊ฑฐ๋ฆฌ)
+
+ - ์ข
๋ฅ
+ - **๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ** : ๊ฐ์ค์น๊ฐ ์์ด ์๋ ์๋ผ๋ ๊ฐ์ ํ์ ์ฌ์ฉ๊ฐ๋ฅ. ํน์ ์ ์ ์์ ๋ค๋ฅธ ๋ชจ๋ ์ ์ ๊น์ง์ ์ต๋จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํด ์ฃผ๋ ์๊ณ ๋ฆฌ์ฆ.
+
+---
+
+## ๐ ์ถ๊ฐ ํ์ต ํ์
+
+์๊ณ ๋ฆฌ์ฆ ๊ตฌํ์ ์์ฃผ ๋์ค๋ DFS์ ๋ํด ์กฐ๊ธ ๋ ์์ธํ ๊ณต๋ถํด ๋ณด์๋ค.
+
+### DFS
+
+- **์ฅ์ **
+ - ํ ๊ฒฝ๋ก์์ ๋
ธ๋๋ค๋ง ๊ธฐ์ตํ๋ฉด ๋๋ฏ๋ก ์ ์ฅ๊ณต๊ฐ ์์๊ฐ ๋น๊ต์ ์ ๋ค.
+ - ๋ชฉํ ๋
ธ๋๊ฐ ๊น์ ๋จ๊ณ์ ์์ ๊ฒฝ์ฐ ํด๋ฅผ ๋นจ๋ฆฌ ๊ตฌํ ์ ์๋ค.
+
+
+
+- **๋จ์ **
+ - ํด๊ฐ ์๋ ๊ฒฝ๋ก๊ฐ ๊น์ ๊ฒฝ์ฐ ํ์์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆด ์ ์๋ค.
+ - ์ป์ด์ง ํด๊ฐ ์ต๋จ ๊ฒฝ๋ก๊ฐ ๋๋ค๋ ๋ณด์ฅ์ด ์๋ค.
+ - ๊น์ด๊ฐ ๋ฌดํํ ๊น์ด์ง๋ฉด ์คํ์ค๋ฒํ๋ก์ฐ๊ฐ ๋ ์ํ์ด ์๋ค. (๊น์ด ์ ํ์ ๋๋ ๋ฐฉ๋ฒ์ผ๋ก ํด๊ฒฐ๊ฐ๋ฅ)
+
+
+
+- DFS์ ๊ตฌํ
+
+ - ๋ฐฉ๋ฒ์ ๋ฐ๋ฅธ ๊ตฌํ ์ฐจ์ด
+
+ - ์ธ์ ํ๋ ฌ๋ก ๊ตฌํ
+
+ ```python
+ def dfs(now, adjacent, visited):
+ visited[now] = True
+ N = len(adjacent)
+
+ for i in range(N):
+ if adjacent[now][i] == 0:
+ continue
+
+ if not visited[i]:
+ dfs(i, adjacent, visited)
+
+ # ์ฌ์ฉ ์์
+ # adjacent = [[0, 1, 0], [1, 0, 1], [0, 1, 0]] # ์ธ์ ํ๋ ฌ ์์
+ # visited = [False] * len(adjacent) # ๋ฐฉ๋ฌธ ์ฌ๋ถ ๋ฆฌ์คํธ ์ด๊ธฐํ
+ # dfs(0, adjacent, visited) # ์ ์ 0์์ DFS ์์
+ ```
+
+ > DFS ํ๋๋น N๋ฒ์ loop๋ฅผ ๋๊ฒ ๋๋ฏ๋ก O(n)์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ค. ๊ทธ๋ฐ๋ฐ N๊ฐ์ ์ ์ ์ ๋ชจ๋ ๋ฐฉ๋ฌธ ํด์ผํ๋ฏ๋ก n\*O(n)์ด๋ฏ๋ก O(n^2)์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๊ฒ ๋๋ค.
+
+ - ์ธ์ ๋ฆฌ์คํธ๋ก ๊ตฌํ
+
+ ```python
+ def dfs(now, adjacent, visited):
+ visited[now] = True
+
+ for next in adjacent[now]:
+ if not visited[next]:
+ dfs(next, adjacent, visited)
+
+ # ์ฌ์ฉ ์์
+ # adjacent = [[1, 2], [0, 2], [0, 1]] # ์ธ์ ๋ฆฌ์คํธ ์์
+ # visited = [False] * len(adjacent) # ๋ฐฉ๋ฌธ ์ฌ๋ถ ๋ฆฌ์คํธ ์ด๊ธฐํ
+ # dfs(0, adjacent, visited) # ์ ์ 0์์ DFS ์์
+ ```
+
+ > DFS๊ฐ ์ด N๋ฒ ํธ์ถ๋๊ธด ์ธ์ ๋ฆฌ์คํธ๋ก ๊ตฌํํ๊ฒ ๋๋ฉด DFSํ๋๋น ๊ฐ ์ ์ ์ ์ฐ๊ฒฐ๋์ด ์๋ ๊ฐ์ ์ ๊ฐ์๋งํผ ํ์์ ํ๊ฒ ๋๋ฏ๋ก ์์ธก์ด ๋ถ๊ฐ๋ฅ ํ๋ค. ๋ชจ๋ ์ ์ ์ ํ๋ฒ์ฉ ๋ค ๋ฐฉ๋ฌธํ๊ณ , ๋ชจ๋ ๊ฐ์ ์ ํ๋ฒ์ฉ ๋ชจ๋ ๊ฒ์ฌํ๋ค๊ณ ํ ์ ์์ผ๋ฏ๋ก O(n+e)์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง๊ฒ ๋๋ค.
+
+---
+
+## ๐ก ์ฐธ๊ณ ์๋ฃ
+
+- https://currygamedev.tistory.com/10
diff --git "a/DataStructure/\353\260\260\354\227\264\352\263\274 \354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270/\353\260\260\354\227\264\352\263\274 \354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270_\354\230\210\354\247\200.md" "b/DataStructure/\353\260\260\354\227\264\352\263\274 \354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270/\353\260\260\354\227\264\352\263\274 \354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270_\354\230\210\354\247\200.md"
new file mode 100644
index 0000000..e79a58b
--- /dev/null
+++ "b/DataStructure/\353\260\260\354\227\264\352\263\274 \354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270/\353\260\260\354\227\264\352\263\274 \354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270_\354\230\210\354\247\200.md"
@@ -0,0 +1,110 @@
+## ๐ ํ์ต ์ฃผ์
+
+- **์ฃผ์ **: ๋ฐฐ์ด๊ณผ ์ฐ๊ฒฐ๋ฆฌ์คํธ
+- **๋ ์ง**: 2024.10.21 - 2024.10.27
+
+---
+
+## ๐ ํ์ต ๋ด์ฉ ์์ฝ
+
+### [๋ฐฐ์ด]
+- **`๋ฐฐ์ด(array)`** : ์ผ์ ํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ฐจ์งํ๋ ์ฌ๋ฌ ์์๋ค์ด ์์ฐจ์ ์ผ๋ก ๋์ด๋ ์๋ฃ๊ตฌ์กฐ
+ - ๋ฐฐ์ด์ ์ข
๋ฅ
+ - ์ผ์ฐจ์ ๋ฐฐ์ด : ํ ์ชฝ ๋ฐฉํฅ์ผ๋ก ์์๊ฐ ๋์ด
+ - ์ด์ฐจ์ ๋ฐฐ์ด : ๋ฐฐ์ด ์์ ๋ฐฐ์ด์ด ํฌํจ๋ ๊ฒฝ์ฐ
+ - ์ผ์ฐจ์ ๋ฐฐ์ด : ๋ฐฐ์ด ์์ ๋ฐฐ์ด ์์ ๋ฐฐ์ด์ด ํฌํจ๋ ๊ฒฝ์ฐ
+ - ์ ์ ๋ฐฐ์ด : ํ๋ก๊ทธ๋จ์ ์คํํ๊ธฐ ์ ์ ํฌ๊ธฐ๊ฐ ๊ณ ์ ๋์ด ์๋ ๋ฐฐ์ด
+ - ๋์ ๋ฐฐ์ด : ์คํ ๊ณผ์ ์์ ํฌ๊ธฐ๊ฐ ๋ณํ ์ ์๋ ๋ฐฐ์ด
+ - ํ์ฉ๋
+ - ๊ด๋ จ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ผ๋ ฌ๋ก ๋์ดํ์ฌ ๊ด๋ฆฌํ๊ณ ์ ํ ๋
+ - ๋ค๋ฅธ ์๋ฃ๊ตฌ์กฐ๋ ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํํ๊ณ ์ ํ ๋
+
+
+
+- **`์ธ๋ฑ์ค(index)`** : 0๋ถํฐ ์์ํ๋ ๊ณ ์ ํ ์์ ๋ฒํธ
+ - ๋น
์ค ํ๊ธฐ๋ฒ์ผ๋ก ํํ
+ - ์ธ๋ฑ์ค๋ฅผ ๋ฐํ์ผ๋ก ๋ฐฐ์ด์ ํน์ ์์์ ์ ๊ทผ/์์ ํ๋ ์๊ฐ : **`O(1)`**
+ - ์์์ ๋ถํฐ ์ฐจ๋ก๋๋ก ํน์ ์์๊ฐ ์๋์ง ์ฐพ๋ ์ฐ์ฐ : **`O(n)`**
+ -> ์์์ ๊ฐฏ์์ ๋ฌด๊ดํ๊ฒ ์ผ์ ํ๋ค.
+ - ํน์ ์์๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ ํ๋ ๊ฒฝ์ฐ : **`O(n)`**
+ -> ์ถ๊ฐ ํน์ ์ญ์ ๋ ์์๋ก ์ธํด ์ดํ์ ์์๋ค์ด ์ด๋๋์ด์ผ ํ๊ธฐ ๋๋ฌธ!
+
+---
+
+### [์ฐ๊ฒฐ ๋ฆฌ์คํธ]
+- **`์ฐ๊ฒฐ ๋ฆฌ์คํธ(linked list)`** : ๋
ธ๋์ ๋ชจ์์ผ๋ก ๊ตฌ์ฑ๋ ์๋ฃ๊ตฌ์กฐ
+ - ์ฐ๊ฒฐ ๋ฆฌ์คํธ์ ํน์ง : ๋ชจ๋ ๋
ธ๋๋ ๋ฐ๋์ ๋ฉ๋ชจ๋ฆฌ ๋ด์ ์์ฐจ์ ์ผ๋ก ์ ์ฅ๋์ด ์์ ํ์ X
+-> ์ฐ์์ ์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ฐ์์ ์ผ๋ก ์ ์ฅํ ๋ ์ ์ฉ
+ - ์ฐ๊ฒฐ ๋ฆฌ์คํธ์ ์ข
๋ฅ
+ - `์ฑ๊ธ ์ฐ๊ฒฐ ๋ฆฌ์คํธ` : ๋
ธ๋ ๋ด ๋ค์ ๋
ธ๋์ ์์น ์ ๋ณด๊ฐ ์ ์ฅ๋์ด ํ์ชฝ ๋ฐฉํฅ์ผ๋ก ๊ผฌ๋ฆฌ๋ฅผ ๋ฌด๋ ํํ(๋ฐ์ดํฐ + ๋ค์๋
ธ๋)
+ - ๋จ์ : ๋ค์๋
ธ๋์ ์์น๋ง ์ ์ ์์ผ๋ฉฐ, ์ด์ ๋
ธ๋์ ์์น๋ ์๊ธฐ ์ด๋ ค์
+ - `์ด์ค ์ฐ๊ฒฐ ๋ฆฌ์คํธ` : ์ด์ ๋
ธ๋ + ๋ฐ์ดํฐ + ๋ค์๋
ธ๋
+ - ์ฅ์ : ์๋ฐฉํฅ ํ์์ด ๊ฐ๋ฅํจ
+ - ๋จ์ : ์ ์ฅ๊ณต๊ฐ์ด ๋ ํ์ํจ, ํ ๋
ธ๋์ 2๊ฐ์ ์์น์ ๋ณด๋ฅผ ์ ์ฅํด์ผํ๊ธฐ ๋๋ฌธ
+
+ - `ํํ ์ฐ๊ฒฐ ๋ฆฌ์คํธ(์ํ ์ฐ๊ฒฐ ๋ฆฌ์คํธ)` : ๊ผฌ๋ฆฌ๋
ธ๋๊ฐ ํค๋๋
ธ๋๋ฅผ ๊ฐ๋ฆฌ์ผ ๋
ธ๋๋ค์ด ์ํ์ผ๋ก ๊ตฌ์ฑ๋ ์ฐ๊ฒฐ๋ฆฌ์คํธ
+ - `์ด์ค ์ฐ๊ฒฐ๋ฆฌ์คํธ + ํํ ์ฐ๊ฒฐ ๋ฆฌ์คํธ` : ํค๋๋
ธ๋์ ์ด์ ๋
ธ๋๊ฐ ๊ผฌ๋ฆฌ๋
ธ๋ ๊ฐ๋ฆฌํด/ ๊ผฌ๋ฆฌ๋
ธ๋์ ๋ค์๋
ธ๋๊ฐ ํค๋๋
ธ๋๋ฅผ ๊ฐ๋ฆฌํด
+ - ์ฅ์ : ๋ชจ๋ ๋
ธ๋๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ์ฐจ๋ก ์ํํด์ผํ ๋ ์ ์ฉํ๊ฒ ํ์ฉํ ์ ์์
+
+
+
+
+- **`๋
ธ๋(node)`** : ์ ์ฅํ๊ณ ์ ํ๋ ๋ฐ์ดํฐ์ ๋ค์ ๋
ธ๋์ ์์น(๋ฉ๋ชจ๋ฆฌ ์์ ์ฃผ์) ์ ๋ณด๋ฅผ ํฌํจํ๋ ์ฐ๊ฒฐ ๋ฆฌ์คํธ์ ๊ตฌ์ฑ ๋จ์
+
+
+ - ์ฐ๊ฒฐ๋ฆฌ์คํธ์ ํํ
+ - `ํค๋(head)` : ์ฐ๊ฒฐ๋ฆฌ์คํธ์ ์ฒซ ๋ฒ์งธ ๋
ธ๋
+ - `๊ผฌ๋ฆฌ(tail)` : ์ฐ๊ฒฐ๋ฆฌ์คํธ์ ๋ง์ง๋ง ๋
ธ๋
+
+
+
+- ๋น
์ค ํํ๋ฒ์ผ๋ก ํํ
+ - ๋ฐ์ดํฐ๊ฐ ๋ช ๋ฒ์งธ ๋
ธ๋์ ์๋์ง ์๊ณ , ํน์ ์์์ ์ ๊ทผํ ๋ : **`O(n)`**
+ -> ์์์๋ถํฐ ์์ฐจ์ ์ผ๋ก ์ ๊ทผํ ์ ๋ฐ์ ์๊ธฐ ๋๋ฌธ
+
+
+
+ - ์ค๊ฐ์ ์์๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ ํ ๋ : **`O(1)`**
+ -> ๋
ธ๋์ ์์น๋ง ๋ฐ๊ฟ์ ์ ์ฅ, ์ฌ์ ๋ ฌ์ด ๋ถํ์ํ๊ธฐ ๋๋ฌธ
+ -> ์ฝ์
/์ญ์ ํ ์์น๋ง ์ฃผ์ด์ง๋ฉด ๋
ธ๋์ ์ ๊ทผํ๋ ์๊ฐ์ด ๋์ผ
+
+
+
+
+
+---
+
+## ๐ ์ถ๊ฐ ํ์ต ํ์
+์ฐ๊ฒฐ๋ฆฌ์คํธ์ ๋ฐฐ์ด์ ์ด๋ค ์ํฉ์์ ์ฌ์ฉํด์ผํ๋์ง, ๊ทธ๋ฆฌ๊ณ ๊ฐ๊ฐ ์ฌ์ฉํ์ ๋์ ์ฅ์ ๊ณผ ๋จ์ ์ ์ ๋ชจ๋ฅด๊ฒ ๋ค.
+
+### [์ฐ๊ฒฐ ๋ฆฌ์คํธ]
+ - ๐ ํจ์จ์ ์ธ ์ํฉ
+ - ๋ฐ์ดํฐ์ ๋์ ์ถ๊ฐ/์ญ์ ๊ฐ ํ์ํ ๊ฒฝ์ฐ. ์ฌ์ ๋ ฌ์ด ํ์์๊ธฐ ๋๋ฌธ.
+ - ๐๐ป ๋นํจ์จ์ ์ธ ์ํฉ
+ - **๋ฐ์ดํฐ ๊ฒ์์ ๋นํจ์จ์ **
+ -> ํน์ ์์น์ ๋
ธ๋๋ฅผ ๊ฒ์ํ๊ธฐ ์ํด์ ์ฒ์๋ถํฐ ์ฐจ๋ก๋๋ก ์ ๊ทผํด์ผํ๊ธฐ ๋๋ฌธ
+ - **๋ฉ๋ชจ๋ฆฌ ์ค๋ฒํค๋๊ฐ ๋ฐ์ํ ์ ์๋ค.**
+ -> ๊ฐ ๋
ธ๋๋ ๋ฐ์ดํฐ ํ๋์ ํจ๊ป ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ํ๋(๋งํฌํ๋)๋ฅผ ๊ฐ์ง๊ณ ์์ด์ผ ํ๋ค. ์ด ๋งํฌ ํ๋๋ ์ถ๊ฐ์ ์ธ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฏ๋ก, ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ ๋ฐฐ์ด์ ๋นํด ๋ฉ๋ชจ๋ฆฌ ์ค๋ฒํค๋๊ฐ ํฌ๋ค๊ณ ๋ณผ ์ ์๋ค.
+ - **์ญ๋ฐฉํฅ ํ์์ ์ด๋ ค์**
+ -> ์ด์ค ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ฅผ ํตํด ํด์ํ ์ ์์ง๋ง, ๋๋ค๋ฅธ ๋ฉ๋ชจ๋ฆฌ ์ค๋ฒํค๋๋ฅผ ๋ฐ์์ํฌ ์ ์๋ค.
+ - **๋ณต์กํ ๊ตฌํ**
+ -> ๋ฐฐ์ด์ ๋นํด ๋ณต์กํ๋ค. ๋
ธ๋์ ์ฝ์
, ์ญ์ ์์ ๋งํฌ๋ฅผ ์ ํํ ๊ด๋ฆฌํด์ผ ํ๋ฏ๋ก ๋ฒ๊ทธ๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ๋ ๋๋ค.
+
+### [๋ฐฐ์ด]
+- ๐ ํจ์จ์ ์ธ ์ํฉ
+
+ - ๋น ๋ฅธ ๋ฐ์ดํฐ ์ ๊ทผ: ์ธ๋ฑ์ค๋ฅผ ํตํด ํน์ ์์์ ์ฆ์ ์ ๊ทผํ ์ ์์ด, ์ ๊ทผ ์๊ฐ์ด ๐(1)๋ก ๋งค์ฐ ๋น ๋ฅด๋ค.
+ - ๋ฉ๋ชจ๋ฆฌ ์ฐ์์ฑ: ๋ฐฐ์ด์ ๋ฉ๋ชจ๋ฆฌ ๋ด์์ ์ฐ์์ ์ผ๋ก ์ ์ฅ๋๋ฏ๋ก, ์บ์ ํจ์จ์ฑ์ด ๋์ ์ฑ๋ฅ์ด ์ข๋ค.
+ - ๊ฐ๋จํ ๊ตฌํ: ๋ฐฐ์ด์ ๊ตฌ์กฐ๊ฐ ๋จ์ํ์ฌ ๊ตฌํ์ด ์ฝ๊ณ , ๊ธฐ๋ณธ์ ์ธ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ก ๋ง์ด ์ฌ์ฉ๋๋ค.
+- ๐๐ป ๋นํจ์จ์ ์ธ ์ํฉ
+
+ - ๊ณ ์ ๋ ํฌ๊ธฐ: ์ ์ ๋ฐฐ์ด์ ๊ฒฝ์ฐ, ํฌ๊ธฐ๊ฐ ๊ณ ์ ๋์ด ์์ด ์คํ ์ค์ ํฌ๊ธฐ๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ค. ์ด๋ก ์ธํด ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๊ฐ ๋ฐ์ํ ์ ์๋ค.
+ - ๋ฐ์ดํฐ ์ถ๊ฐ/์ญ์ ์ ๋นํจ์จ์ฑ: ๋ฐฐ์ด์ ์ค๊ฐ์ ์์๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ ํ ๊ฒฝ์ฐ, ์ดํ์ ์์๋ค์ ์ด๋ํด์ผ ํ๋ฏ๋ก ์๊ฐ ๋ณต์ก๋๊ฐ ๐(๐)์ด ๋๋ค.
+ - ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น: ๋์ ๋ฐฐ์ด์ ์ฌ์ฉํ ๊ฒฝ์ฐ, ๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ ๋๋ฆฌ๊ธฐ ์ํด ์ถ๊ฐ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํด์ผ ํ๋ฉฐ, ์ด ๊ณผ์ ์์ ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๊ฐ ๋ฐ์ํ ์ ์๋ค.
+
+
+---
+
+## ๐ก ์ฐธ๊ณ ์๋ฃ
+
+- https://velog.io/@hyhy9501/5-1-Linked-List-%EC%97%B0%EA%B2%B0-%EB%A6%AC%EC%8A%A4
diff --git "a/DataStructure/\354\212\244\355\203\235\352\263\274 \355\201\220/\354\212\244\355\203\235\352\263\274 \355\201\220_\354\230\210\354\247\200.md" "b/DataStructure/\354\212\244\355\203\235\352\263\274 \355\201\220/\354\212\244\355\203\235\352\263\274 \355\201\220_\354\230\210\354\247\200.md"
new file mode 100644
index 0000000..3de1335
--- /dev/null
+++ "b/DataStructure/\354\212\244\355\203\235\352\263\274 \355\201\220/\354\212\244\355\203\235\352\263\274 \355\201\220_\354\230\210\354\247\200.md"
@@ -0,0 +1,70 @@
+## ๐ ํ์ต ์ฃผ์
+
+- **์ฃผ์ **: ์คํ๊ณผ ํ
+- **๋ ์ง**: 2024.10.21 - 2024.10.27
+
+---
+
+## ๐ ํ์ต ๋ด์ฉ ์์ฝ
+
+### [์คํ]
+- **`์คํ(stack)`** : ํ์ชฝ์์๋ง ๋ฐ์ดํฐ์ ์ฝ์
๋ฐ ์ญ์ ๊ฐ ๊ฐ๋ฅํ ์๋ฃ๊ตฌ์กฐ
+ - ์คํ ์ฐ์ฐ
+ - `ํธ์(push)` : ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์ฐ์ฐ
+ - `ํ(pop)` : ๋ฐ์ดํฐ๋ฅผ ๋นผ๋ค๋ ์ฐ์ฐ
+
+ > โ
**ํ์
์ ์ถ(LIFO)**
+ ์ต๊ทผ์ ํธ์ถ๋ ํจ์์ ๋งค๊ฐ๋ณ์๊ฐ ๊ฐ์ฅ ๋จผ์ ํ์ฉ๋๊ณ , ๊ฐ์ฅ ๋จผ์ ๋ฉ๋ชจ๋ฆฌ์์ ์ญ์ ๋จ
+
+ - ํ์ฉ
+ - ์ต๊ทผ์ ์์ ์ ์ฅํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ฅ ๋จผ์ ํ์ฉํด์ผํ๋ ๊ฒฝ์ฐ(๋ค๋ก๊ฐ๊ธฐ)
+ - undo
+ - ํ์ ํ๊ธฐ๋ฒ ๊ณ์ฐ
+---
+
+### [ํ]
+- **`ํ(queue)`** : ํ์ชฝ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฝ์
ํ๊ณ , ๋ค๋ฅธ ํ์ชฝ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ ์ ์๋ ์๋ฃ๊ตฌ์กฐ
+ - ํ ์ฐ์ฐ
+ - `์ธํ(enqueue)` : ํ์ ํ์ชฝ ๋์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์
ํ๋ ์ฐ์ฐ
+ - `๋ํ(dequeue)` : ๋ค๋ฅธ ํ์ชฝ ๋์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋นผ๋ด๋(์ญ์ ) ์ฐ์ฐ
+
+ 
+
+ > โ
**์ ์
์ ์ถ(FIFO)**
+ ๊ฐ์ฅ ๋จผ์ ์ฝ์
๋ ๋ฐ์ดํฐ๊ฐ ๊ฐ์ฅ ๋จผ์ ์ญ์ ๋จ
+ - ํ์ฉ
+ - ์์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์ฐจ๋ก์ฐจ๋ก ๋ด๋ณด๋ด๊ฑฐ๋ ๊บผ๋ด์์ผํ๋ `๋ฒํผ`(์ค์ธ์ฐ๊ธฐ)
+ - ์ํ์
๋ฌด
+ - ๋๊ธฐ์ด
+ - ๋ณํ๋ ํ์ ํํ
+ - `์ํ ํ` : ๋ฐ์ดํฐ๋ฅผ ์ฝ์
ํ๋ ์ชฝ๊ณผ ์ญ์ ํ๋ ์ชฝ - ์์ชฝ์ ํ๋๋ก ์ฐ๊ฒฐํด ์ํ์ผ๋ก ์ฌ์ฉ
+ - `๋ฑ(Double-Ended Queue)` : ์์ชฝ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฝ์
/์ญ์ ํ ์ ์๋ ํ
+ - `์ฐ์ ์์ ํ` : ์์์ ์ ์ฅ ์์์ ๋ฌด๊ดํ๊ฒ ์ฐ์ ์์๊ฐ ๋์ ์์๋๋ก ๋น ์ ธ๋๊ฐ๋ ํ
+
+---
+
+## ๐ ์ถ๊ฐ ํ์ต ํ์
+์คํ์ ์ฌ๋ฌ ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ์์ ํ์ฉ๋๋๋ฐ ์ด๋ค ์ ํ์์ ์ฃผ๋ก ํ์ฉ๋๋์ง ๊ถ๊ธํด์ ์ฐพ์๋ณด์๋ค.
+๋ํ ๊ธฐ์ ๋ฉด์ ์์ ํ์ ๊ฒฝ์ฐ ์ฐ์ ์์ ํ์ ๋ํด ๋ง์ด ๋ฌผ์ด๋ณด๊ธฐ ๋๋ฌธ์ ์กฐ๊ธ ๋ ํ์ตํ๋ค.
+
+### stack
+- ๋ํ์ ํ : ๋ฏธ๋ก์ฐพ๊ธฐ
+DFS ์๊ณ ๋ฆฌ์ฆ์ ์ํํ๋๋ฐ `Stack`์ ์ฌ์ฉํ ์ ์์
+DFS๋ `stack`์ ์ด์ฉํด ๊ฒฝ๋ก๋ฅผ ๊ด๋ฆฌํจ.
+1. ํ์ฌ ์์น์์ ๊ฐ๋ฅํ ๋ฐฉํฅ์ ์ขํ๋ฅผ `stack`์ ์ถ๊ฐ
+2. `stack`์ ๊ฐ์ฅ ์ ์ขํ๋ก ์ด๋(๋ฐ๋ณต)
+3. ๋ ์ด์ ๊ฐ ๊ณณ์ด ์์ผ๋ฉด `stack`์์ ๋ง์ง๋ง ๊ฒฝ๋ก๋ฅผ ์ ๊ฑฐํ๊ณ ์ด์ ์์น๋ก ์ด๋
+4. ํ์ ์ค ์ถ๊ตฌ๋ฅผ ๋ง๋๋ฉด ์ข
๋ฃ - `stack`์ด ๋น์ด ์์ผ๋ฉด ๋ ์ด์ ๊ฐ ๊ณณ์ด ์๋ค๋ ์๋ฏธ๋ก, ์ถ๊ตฌ๋ฅผ ์ฐพ์ง ๋ชปํ ์ํฉ
+
+### ์ฐ์ ์์ ํ
+- ๊ตฌํ๋ฐฉ์
+ - ๋ฐฐ์ด, ์ฐ๊ฒฐ ๋ฆฌ์คํธ, ํ
+- ํจ์จ์ ์ธ ๊ตฌํ๋ฐฉ์
+ - `ํ ๋ฐฉ์`
+ worst case๋ผ๋ ์๊ฐ ๋ณต์ก๋ O(logN)์ ๋ณด์ฅํ๊ธฐ ๋๋ฌธ์ ์ผ๋ฐ์ ์ผ๋ก ์์ ์ด์งํธ๋ฆฌ ํํ์ ํ์ ์ด์ฉํด ๊ตฌํ
+
+---
+
+## ๐ก ์ฐธ๊ณ ์๋ฃ
+- https://velog.io/@kangdev/%EA%B8%B0%EC%88%A0%EB%A9%B4%EC%A0%91%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-Stack-Queue
+- https://dev-coco.tistory.com/159
\ No newline at end of file
diff --git "a/DataStructure/\354\236\220\353\243\214\352\265\254\354\241\260\354\235\230 \355\201\260 \352\267\270\353\246\274/\354\236\220\353\243\214\352\265\254\354\241\260\354\235\230 \355\201\260 \352\267\270\353\246\274_\354\230\210\354\247\200.md" "b/DataStructure/\354\236\220\353\243\214\352\265\254\354\241\260\354\235\230 \355\201\260 \352\267\270\353\246\274/\354\236\220\353\243\214\352\265\254\354\241\260\354\235\230 \355\201\260 \352\267\270\353\246\274_\354\230\210\354\247\200.md"
new file mode 100644
index 0000000..8ba2577
--- /dev/null
+++ "b/DataStructure/\354\236\220\353\243\214\352\265\254\354\241\260\354\235\230 \355\201\260 \352\267\270\353\246\274/\354\236\220\353\243\214\352\265\254\354\241\260\354\235\230 \355\201\260 \352\267\270\353\246\274_\354\230\210\354\247\200.md"
@@ -0,0 +1,153 @@
+## ๐ ํ์ต ์ฃผ์
+
+- **์ฃผ์ **: ์๋ฃ๊ตฌ์กฐ์ ํฐ๊ทธ๋ฆผ
+- **๋ ์ง**: 2024.10.21 - 2024.10.24
+
+---
+
+## ๐ ํ์ต ๋ด์ฉ ์์ฝ
+
+### [์๋ฃ๊ตฌ์กฐ]
+
+- ์ด๋ ํ ๊ตฌ์กฐ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ์ง ํ์ตํ๋ ๊ณผ๋ชฉ
+- ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ด๋ ํ์
+
+---
+
+### [์๊ฐ๋ณต์ก๋์ ๊ณต๊ฐ๋ณต์ก๋]
+
+#### ์๊ฐ๋ณต์ก๋
+
+- `์๊ฐ๋ณต์ก๋(time complexity)` : ์
๋ ฅ์ ํฌ๊ธฐ์ ๋ฐ๋ฅธ ํ๋ก๊ทธ๋จ ์คํ์๊ฐ์ ๊ด๊ณ
+
+```python
+for _ in range(n):
+ 1+1
+```
+
+> ์คํ์๊ฐ์ `์ฐ์ฐํ์`์ ๋น๋กํ๋ค.
+> ์์ ๊ฐ์ ์ฝ๋๋ **n๋ฒ์ ์ฐ์ฐ**์ด ํ์ํ๋ค.
+
+```python
+for _ in range(n):
+ for _ in range(n):
+ 1+1
+```
+
+> 2๊ฐ์ ๋ฐ๋ณต๋ฌธ์ด ๊ฒน์ณ์ ธ ์์ผ๋ $$n^2$$๋ฒ์ ์ฐ์ฐ์ด ํ์ํ๋ค.
+
+---
+
+#### ํ๊ธฐ๋ฒ
+
+**1. ๋น
์ค ํ๊ธฐ๋ฒ(big O notation)**
+ํจ์์ ์ ๊ทผ์ ์ํ์ ํ๊ธฐํ๋ ๋ฐฉ๋ฒ, ์
๋ ฅ์ ๋ฐ๋ฅธ ์คํ์๊ฐ์ ์ ๊ทผ์ ์ํ
+
+- `์ ๊ทผ์ ์ํ` : ์
๋ ฅํ๋ n์ด ์ ์ ์ฆ๊ฐ(๋ฌดํ๋๋ก ์ปค์ง๋ค๊ณ ๊ฐ์ ) -> n์ ๋ฐ๋ผ ์คํ์๊ฐ ์ฆ๊ฐ -> ์คํ์๊ฐ์ด ์ฆ๊ฐํ๋๋ฐ์ ํ๊ณ ์กด์ฌ(ํ๊ณ == ์ ๊ทผ์ ์ํ)
+
+- **O(์ํ(n))** : ์คํ์๊ฐ์ด ์ปค์ง๋๋ผ๋ ์ํ์ ์ด์ ์ปค์ง์ง ์์ ๊ฒ
+ > ex) **O($$n^2$$)** : ์
๋ ฅ๊ฐ n์ด ์ฆ๊ฐํ๋๋ผ๋ ์คํ์๊ฐ์ ์ฆ๊ฐ์จ์ด $$n^2$$๋ณด๋ค๋ ์๋ค.
+ > โ๋จ, ์ ๊ทผ์ ์ํ์ ํํํ ๋์๋ **์ต๊ณ ์ฐจํญ์ ์ฐจ์**๋ง ๊ณ ๋ คํด์ผ ํจโ
+
+
+
+**2. ๋น
์ธํ ํ๊ธฐ๋ฒ(big $$\theta$$ notation)**
+์
๋ ฅ์ ๋ํ ํ๊ท ์ ์ธ ์คํ ์๊ฐ
+
+> ex) **$$\theta$$($$n^2$$)** : ์
๋ ฅ๊ฐ n์ด ์ฆ๊ฐํ๋๋ผ๋ ์คํ์๊ฐ์ ์ฆ๊ฐ์จ์ด $$n^2$$๊ณผ ๊ฐ๋ค.
+
+
+
+**3. ๋น
์ค๋ฉ๊ฐ ํ๊ธฐ๋ฒ(big $$\omega$$ notation)**
+์
๋ ฅ์ ๋ํ ์คํ ์๊ฐ์ ์ ๊ทผ์ ํํ
+
+> ex) **$$\omega$$($$n^2$$)** : ์
๋ ฅ๊ฐ n์ด ์ฆ๊ฐํ๋๋ผ๋ ์คํ์๊ฐ์ ์ฆ๊ฐ์จ์ด $$n^2$$๋ณด๋ค๋ ํฌ๋ค.
+
+---
+
+#### ๊ณต๊ฐ๋ณต์ก๋
+
+- `๊ณต๊ฐ๋ณต์ก๋(space complexity)` : ํ๋ก๊ทธ๋จ์ด ์คํ๋์์ ๋ ํ์ํ ๋ฉ๋ชจ๋ฆฌ ์์์ ์
+
+ > ๋ง์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ์ํ ๊ฒฝ์ฐ : ๊ณต๊ฐ ๋ณต์ก๋๊ฐ ํฌ๋ค.
+ > ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ : ๊ณต๊ฐ ๋ณต์ก๋๊ฐ ์๋ค.
+
+- ๊ณต๊ฐ ๋ณต์ก๋๋ ๋น
์ค ํ๊ธฐ๋ฒ์ผ๋ก ํํ
+ - ์
๋ ฅ์ ๋ฐ๋ผ ํ์ํ ๋ฉ๋ชจ๋ฆฌ ์์์ ์์ ๋ํ ์ ๊ทผ์ ์ํ์ ํํ
+
+---
+
+## ๐ ์ถ๊ฐ ํ์ต ํ์
+
+๊ฐ๋
์ ์ดํดํ์ผ๋ ์ฝ๋๋ฅผ ๋ดค์ ๋ ์๊ฐ๋ณต์ก๋๋ฅผ ํ์
ํ๋ ๊ฒ์ด ์ด๋ ค์ ๋ค.
+
+### โ
์์ฃผ ์ธ๊ธ๋๋ ๋น
์ค ํ๊ธฐ๋ค์ ์์
+
+#### 1. O(1)
+
+```python
+def get_element(arr, index):
+ return arr[index]
+
+numbers = [10, 20, 30, 40, 50]
+result = get_element(numbers, 2)
+print(result) # ์ถ๋ ฅ 30
+
+```
+
+> ์์ ๋ ๋ฆฌ์คํธ์ ํฌ๊ธฐ์ ์๊ด์์ด ์ธ๋ฑ์ค๋ฅผ ํตํด ์ง์ ์ ๊ทผํ๋ฏ๋ก, ์คํ ์๊ฐ์ ํญ์ ์ผ์ ํจ
+> ์
๋ ฅ๊ฐ์ ํฌ๊ธฐ์ ์๊ด์์ด ์คํ์๊ฐ์ด ์ผ์ ํ ๊ฒฝ์ฐ O(1)
+
+#### 2. O($$n$$)
+
+```python
+def sum_of_elements(arr):
+ total = 0
+ for element in arr:
+ total += element
+ return total
+
+numbers = [1, 2, 3, 4, 5]
+result = sum_of_elements(numbers)
+print(result) # ์ถ๋ ฅ 15
+```
+
+> ๋ฆฌ์คํธ์ ๊ธธ์ด๊ฐ n์ผ ๋, ๊ฐ ์์์ ๋ํด ํ ๋ฒ์ฉ ์ฐ์ฐ์ ์ํํ๋ฏ๋ก ์ด n๋ฒ์ ์ฐ์ฐ์ด ํ์ํจ
+
+#### 3. O($$n^2$$)
+
+```python
+def print_pairs(arr):
+ n = len(arr)
+ for i in range(n):
+ for j in range(n):
+ print(arr[i], arr[j])
+
+numbers = [1, 2, 3]
+print_pairs(numbers)
+```
+
+> ๋ฆฌ์คํธ์ ํฌ๊ธฐ๊ฐ N์ผ ๋, ์ฒซ ๋ฒ์งธ ๋ฃจํ๊ฐ N๋ฒ ์คํ๋๊ณ , ๊ฐ ์คํ๋ง๋ค ๋ ๋ฒ์งธ ๋ฃจํ๊ฐ N๋ฒ ์คํ๋๋ฏ๋ก ์ด ์คํ ํ์๋ N \* N = Nยฒ
+
+#### 4. O($$nlogn$$)
+
+```python
+def nlogn(n):
+ for i in range(1, n): # n๋ฒ ๋ฐ๋ณต
+ j = 1 # ์ด๊ธฐ๊ฐ ์ค์
+ while j < n: # log n + 1
+ print(i, j) # log n
+ j *= 2 # j๋ฅผ 2๋ฐฐ๋ก ์ฆ๊ฐ
+```
+
+> for๋ฌธ๊ณผ while๋ฌธ์ด ์ค์ฒฉ๋์ด while๋ฌธ์ log n์ ๊ณฑํ๊ธฐ n๋ฒ ํ ๋งํผ ๋ฐ๋ณต
+> for๋ฌธ์ด while๋ด์ ์ค์ฒฉ๋๋ , while๋ฌธ์ด for๋ฌธ ๋ด์ ์ค์ฒฉ๋๋ ์๊ด์์ด ๋ฐ๋ณตํ์๋ ๊ฐ๊ฐ ๋ฐ๋ณต๋ฌธ์ ๊ณฑ์
์
+
+$$n+n+(n*(log n+1+log n+log n)) = 2n+3n log n+n = 3n + 3n log n$$
+= **O($$n log n$$)**
+
+---
+
+## ๐ก ์ฐธ๊ณ ์๋ฃ
+
+- https://velog.io/@gogori6565/%EC%8B%9C%EA%B0%84-%EB%B3%B5%EC%9E%A1%EB%8F%84-%EB%8C%80%ED%91%9C-%EC%98%88%EC%A0%9C-%EB%AC%B8%EC%A0%9C
diff --git "a/DataStructure/\355\212\270\353\246\254/\355\212\270\353\246\254_\354\230\210\354\247\200.md" "b/DataStructure/\355\212\270\353\246\254/\355\212\270\353\246\254_\354\230\210\354\247\200.md"
new file mode 100644
index 0000000..5cc1a03
--- /dev/null
+++ "b/DataStructure/\355\212\270\353\246\254/\355\212\270\353\246\254_\354\230\210\354\247\200.md"
@@ -0,0 +1,202 @@
+## ๐ ํ์ต ์ฃผ์
+
+- **์ฃผ์ **: ํธ๋ฆฌ
+- **๋ ์ง**: 2024.10.21 - 2024.10.27
+
+---
+
+## ๐ ํ์ต ๋ด์ฉ ์์ฝ
+
+### [ํธ๋ฆฌ]
+- **`ํธ๋ฆฌ(tree)`** : ๊ณ์ธต์ ์ธ ๊ตฌ์กฐ๋ฅผ ํํํ๊ธฐ ์ํ ์๋ฃ๊ตฌ์กฐ
+ - ํธ๋ฆฌ์ ํต์ฌ ๊ตฌ์ฑ์์
+ - `๋
ธ๋(node)` : ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ตฌ์ฑ์์
+ - `๊ฐ์ (edge)=๋งํฌ(link)` : ๋
ธ๋์ ๋
ธ๋๋ฅผ ์ฐ๊ฒฐํ๋ ๊ตฌ์ฑ์์
+
+ 
+
+| **์ฉ์ด** | **์ค๋ช
** |
+| --- | --- |
+| **ํ์ ๋
ธ๋(sibling node)** | ๊ฐ์ ๋ถ๋ชจ๋ฅผ ๊ณต์ ํ๋ ๋
ธ๋ |
+| **์กฐ์ ๋
ธ๋(ancestor node)** | ๋ถ๋ชจ๋
ธ๋์ ๊ทธ ๋ถ๋ชจ ๋
ธ๋๋ค |
+| **์์ ๋
ธ๋(descendant node)** | ์์๋
ธ๋์ ๊ทธ ์์ ๋
ธ๋์ ์์ ๋
ธ๋๋ค |
+| **๋
ธ๋(node)** | ํธ๋ฆฌ ์๋ฃ๊ตฌ์กฐ์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ตฌ์ฑ ์์ |
+| **๊ฐ์ (edge)** | ํธ๋ฆฌ ์๋ฃ๊ตฌ์กฐ์์ ๋
ธ๋๋ฅผ ์ฐ๊ฒฐํ๋ ๊ตฌ์ฑ ์์ |
+| **๋ถ๋ชจ ๋
ธ๋(parent node)** | ์ด๋ค ๋
ธ๋์ ์์์ ์ฐ๊ฒฐ๋ ๋
ธ๋ |
+| **์์ ๋
ธ๋(child node)** | ์ด๋ค ๋
ธ๋์ ํ์์ ์ฐ๊ฒฐ๋ ๋
ธ๋ |
+| **๋ฃจํธ ๋
ธ๋(root node)** | ํธ๋ฆฌ์ ์ต์๋จ ๋
ธ๋, ๋ถ๋ชจ ๋
ธ๋๊ฐ ์๋ ๋
ธ๋ |
+| **๋ฆฌํ ๋
ธ๋(leaf node)** | ํธ๋ฆฌ์ ์ตํ๋จ ๋
ธ๋, ์์ ๋
ธ๋๊ฐ ์๋ ๋
ธ๋ |
+| **์ฐจ์(degree)** | ์ด๋ค ๋
ธ๋๊ฐ ๊ฐ์ง๊ณ ์๋ ์์ ๋
ธ๋์ ์ |
+| **๋ ๋ฒจ(level)** | ๋ฃจํธ ๋
ธ๋์์ ์์ํด ํน์ ๋
ธ๋์ ์ด๋ฅด๊ธฐ๊น์ง ๊ฑฐ์น๊ฒ ๋๋ ๊ฐ์ ์ ์ |
+| **์๋ธํธ๋ฆฌ(subtree)** | ํธ๋ฆฌ์ ํฌํจ๋์ด ์๋ ๋ถ๋ถ ํธ๋ฆฌ |
+
+- ์๋ธํธ๋ฆฌ + ๊ฐ์ + ๋ ๋ฒจ
+
+
+- ํธ๋ฆฌ์ ๊ตฌํ
+ - ์ฐ๊ฒฐ๋ฆฌ์คํธ์ฒ๋ผ ํ๋์ ๋
ธ๋๋ฅผ `๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๊ณต๊ฐ`๊ณผ `์์๋
ธ๋์ ์์น์ ๋ณด(๋ฉ๋ชจ๋ฆฌ์์ ์ฃผ์)`๋ฅผ ์ ์ฅํ ๊ณต๊ฐ๋ค์ ๋ชจ์์ผ๋ก ๊ฐ์ฃผํ์ฌ ๊ตฌํ
+
+
+
+
+
+---
+
+### [ํธ๋ฆฌ์ ์ํ]
+-**`ํธ๋ฆฌ์ ์ํ(tree traversal)`** : ํธ๋ฆฌ์ ๋ชจ๋ ๋
ธ๋๋ฅผ ํ๋ฒ์ฉ ๋ฐฉ๋ฌธํ๋ ์ํ
+ - ์ํ์ ์ข
๋ฅ
+ - `์ ์ ์ํ` : ๋ฃจํธ ๋
ธ๋๋ถํฐ ์์ํด ์ผ์ชฝ ์๋ธํธ๋ฆฌ๋ฅผ ์ ์ ์ํํ๊ณ , ์ดํ ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ๋ฅผ ์ ์ ์ํํ๋ ๋ฐฉ๋ฒ
+
+ 
+
+ - `์ค์ ์ํ` : ๋ฃจํธ ๋
ธ๋ ๊ธฐ์ค ์ผ์ชฝ ์๋ธํธ๋ฆฌ๋ฅผ ์ค์ ์ํํ ๋ค์, ๋ฃจํธ ๋
ธ๋๋ฅผ ๋ฐฉ๋ฌธํ๊ณ ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ๋ฅผ ์ค์ ์ํํ๋ ์์๋ก ๋
ธ๋์ ์ ๊ทผํ๋ ์ํ ๋ฐฉ๋ฒ
+
+ 
+
+ - `ํ์ ์ํ` : ๋ฃจํธ ๋
ธ๋ ๊ธฐ์ค ์ผ์ชฝ ์๋ธํธ๋ฆฌ๋ฅผ ํ์ ์ํํ๊ณ , ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ๊น์ง ํ์์ํํ ๋ค์, ๋ฃจํธ ๋
ธ๋๋ฅผ ๋ฐฉ๋ฌธํ๋ ์์๋ก ๋
ธ๋์ ์ ๊ทผํ๋ ์ํ ๋ฐฉ๋ฒ
+
+ 
+
+ - `๋ ๋ฒจ ์์ ์ํ` : ๊ฐ์ฅ ๋ฎ์ ๋ ๋ฒจ๋ถํฐ ์ฐจ๋ก๋ก ๋
ธ๋๋ฅผ ์ํํ๋ ๋ฐฉ๋ฒ
+
+ 
+
+---
+
+### [ํธ๋ฆฌ์ ์ข
๋ฅ]
+### ๊ธฐ๋ณธ์ ์ธ ํธ๋ฆฌ
+-**`์ด์งํธ๋ฆฌ(binary tree)`** : ์์ ๋
ธ๋์ ๊ฐ์๊ฐ 2๊ฐ ์ดํ์ธ ํธ๋ฆฌ
+
+
+
+-**`ํธํฅ๋ ์ด์งํธ๋ฆฌ(askewed binary tree)`** : ๋ชจ๋ ์์ ๋
ธ๋๊ฐ ํ์ชฝ์ผ๋ก ์น์ฐ์น ์ด์งํธ๋ฆฌ
+
+
+
+-**`์ ์ด์ง ํธ๋ฆฌ(full binary tree)`** : ์์ ๋
ธ๋์ ๊ฐ์๊ฐ 1๊ฐ๊ฐ ์๋ ์ด์งํธ๋ฆฌ(์์๋
ธ๋ ๊ฐ์๊ฐ 0์ด๊ฑฐ๋ 2)
+
+
+
+-**`ํฌํ ์ด์ง ํธ๋ฆฌ(perfect binary tree)`** : ๋ฆฌํ๋
ธ๋๋ฅผ ์ ์ธํ ๋ชจ๋ ๋
ธ๋๋ค์ด ์์ ๋
ธ๋๋ฅผ 2๊ฐ์ฉ ๊ฐ์ง๊ณ ์๊ณ , ๋ชจ๋ ๋ฆฌํ ๋
ธ๋์ ๋ ๋ฒจ์ด ๋์ผํ ์ด์งํธ๋ฆฌ
+
+
+
+-**`์์ ์ด์ง ํธ๋ฆฌ(complete binary tree)`** : ๋ง์ง๋ง ๋ ๋ฒจ์ ์ ์ธํ ๋ชจ๋ ๋ ๋ฒจ์ด 2๊ฐ์ ์์๋
ธ๋๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ๋ง์ง๋ง ๋ ๋ฒจ์ ๋ชจ๋ ๋
ธ๋๋ค์ด ์ผ์ชฝ๋ถํฐ ์กด์ฌํ๋ ์ด์งํธ๋ฆฌ
+
+
+
+
+
+### ํ์์ ํ์ฉ๋๋ ํธ๋ฆฌ
+- **์ด์งํ์ํธ๋ฆฌ** : ํน์ ๋
ธ๋์ ์ผ์ชฝ์๋ ํด๋น ๋
ธ๋๋ณด๋ค ์์๊ฐ, ์ค๋ฅธ์ชฝ์๋ ํด๋น ๋
ธ๋๋ณด๋ค ํฐ๊ฐ -> O(log n)์ผ๋ก ์ํ๋ ๊ฐ ํ์ ๊ฐ๋ฅ
+-
+
+
+๐ก ์์ ๊ฒฝ์ฐ ๋ฃจํธ๋
ธ๋์ธ 8๋ณด๋ค ์์ ์ผ์ชฝ ์๋ธํธ๋ฆฌ์ ๋
ธ๋๋ ๋ณผ ํ์๊ฐ ์์
+
+
+- **ํ** : ํ์์ ํนํ๋ ์์ ์ด์ง ํธ๋ฆฌ์ ์ข
๋ฅ ์ค ํ๋์ด๋ฉฐ ์ต๋๊ฐ๊ณผ ์ต์๊ฐ์ ๋น ๋ฅด๊ฒ ์ฐพ๊ธฐ์ํด ์ฌ์ฉ
+ - ํ์ ์ข
๋ฅ
+ - `์ต๋ ํ` : ๋ถ๋ชจ ๋
ธ๋๊ฐ ์์ ๋
ธ๋์ ๊ฐ๋ณด๋ค ํฐ ๊ฐ์ผ๋ก ์ด๋ฃจ์ด์ง ์ด์ง ํธ๋ฆฌ
+ - `์ต์ ํ` : ๋ถ๋ชจ ๋
ธ๋๊ฐ ์์ ๋
ธ๋์ ๊ฐ๋ณด๋ค ์์ ๊ฐ์ผ๋ก ์ด๋ฃจ์ด์ง ์ด์ง ํธ๋ฆฌ
+
+ 
+
+ - `์ต๋ ํ` ๊ตฌํ : ์ต์๋จ ๋ฃจํธ ๋
ธ๋๋ ์ธ์ ๋ ์ฐ์ ์์๊ฐ ๊ฐ์ฅ ๋์ ๊ฐ์ ๊ฐ์ง๊ฒ ๋จ
+
+
+ => `์ฐ์ ์์ ํ`
+
+ 
+
+ ๐ก ๋ฐ์ดํฐ๋ฅผ ๋นผ๋ผ ๋ ์ด๋ค ์์๋ก ์ ์ฅ๋์๋ ์ฐ์ ์์๊ฐ ๋์ ๋ฐ์ดํฐ ์์ผ๋ก ์ป์ด๋ผ ์ ์์
+
+
+
+### ๊ท ํ์ ๋ง์ถ๋ ํธ๋ฆฌ
+- ์ด์งํ์ํธ๋ฆฌ์ ๋ฌธ์ ์ ์ธ ํธํฅ๋ ํธ๋ฆฌ๋ฅผ ๊ฐ์ ํ๊ธฐ ์ํด ์ฌ์ฉํ ์ ์๋ ํน๋ณํ ์ด์ง ํ์ ํธ๋ฆฌ
+ - `์๊ฐ ๊ท ํ ์ด์ง ํ์ ํธ๋ฆฌ`
+ - `AVL ํธ๋ฆฌ`
+ - `RB ํธ๋ฆฌ(์์ฃผ ์ฌ์ฉ๋จ)`
+
+- RB ๋
ธ๋์ ๊ตฌ์ฑ์์
+ - `NIL(null leaf) ๋
ธ๋` : ์ค์ง์ ์ธ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋์ด ์์ง ์์ ๋
ธ๋(๋ฆฌํ๋
ธ๋)
+
+
+
+
+- RB ํธ๋ฆฌ์ ๊ท์น
+
+ 1) ๋ฃจํธ ๋
ธ๋๋ ๋ธ๋ ๋
ธ๋
+
+ 2) ๋ฆฌํ ๋
ธ๋๋ ๋ธ๋ ๋
ธ๋
+
+ 3) ๋ ๋ ๋
ธ๋์ ์์ ๋
ธ๋๋ ๋ธ๋ ๋
ธ๋
+
+ 4) ๋ฃจํธ ๋
ธ๋์์ ์์์ ๋ฆฌํ ๋
ธ๋์ ์ด๋ฅด๋ ๊ฒฝ๋ก์ ๋ธ๋ ๋
ธ๋ ์๋ ๊ฐ์
+
+ +) ์ ๋
ธ๋๋ฅผ ์ฝ์
ํ ๋๋ ์ฝ์
ํ ๋
ธ๋๋ฅผ ๋ ๋๋ก ๊ฐ์ฃผ
+
+ -> ์ฝ์
์ดํ์๋ RBํธ๋ฆฌ๊ฐ ์ ์ง๋์ด์ผ ํ๋ฏ๋ก 4๊ฐ์ง ์กฐ๊ฑด์ ๋ถํฉํ ๋ ๊น์ง ํธ๋ฆฌ๋ฅผ `ํ์ ` / `์์ ์ฌ์ง์ ` ํด์ผํจ
+
+ - `ํธ๋ฆฌ์ ํ์ ` : ์์ชฝ ์๋ธํธ๋ฆฌ์ ๋์ด์ ๊ท ํ์ ๋ง์ถ๊ธฐ ์ํด ๋ถ๋ชจ ๋
ธ๋์ ์์ ๋
ธ๋์ ๊ด๊ณ๋ฅผ ์ฌ ์ง์ ํ๋ ๊ฒ
+
+ - ์ผ์ชฝ ํ์
+
+ 
+
+
+ - ์ค๋ฅธ์ชฝ ํ์
+
+ 
+
+ - `์์ ์ฌ์ง์ ` : ์ฝ์
๋
ธ๋๋ฅผ ๋ ๋๋ก ๊ฐ์ฃผํ ๊ฒฝ์ฐ ๊ฐํน ์๋์ฒ๋ผ '๋ ๋๋
ธ๋์ ์์๋
ธ๋๊ฐ ๋ธ๋๋
ธ๋'๋ผ๋ ์กฐ๊ฑด์ ๋ถํฉํ์ง ์๋ ๊ฒฝ์ฐ๊ฐ ์์
+
+ 
+
+ ๐ก ํธ๋ฆฌ๋ฅผ ์ผ์ชฝ์ผ๋ก ํ์ ํ๊ณ , ์์์ ์ฌ์ง์ (12๋ฅผ 15์ ์์ ๋
ธ๋๋ก ๋ง๋ค๊ณ 12๋ฅผ ๋ ๋ ๋
ธ๋๋ก, 15๋ฅผ ๋ธ๋ ๋
ธ๋๋ก ๋ณํ)
+
+ 
+
+### ๋์ฉ๋ ์
์ถ๋ ฅ์ ์ํ ํธ๋ฆฌ
+- **B ํธ๋ฆฌ** : `๋ค์ง ํ์ ํธ๋ฆฌ(ํ ๋
ธ๋๊ฐ ์ฌ๋ฌ ์์ ๋
ธ๋๋ฅผ ๊ฐ์ง ์ ์๋ ํธ๋ฆฌ)`์ ํ ์ข
๋ฅ
+ - ํน์ง
+ - ํ ๋
ธ๋๊ฐ ๊ฐ์ง ์ ์๋ ์์ ๋
ธ๋์ ์๋ ์ต์, ์ต๋ ๊ฐ์๊ฐ ์ ํด์ ธ ์์
+
+ -> ์ต๋ ์์ ๋
ธ๋์ ๊ฐ์๊ฐ M๊ฐ์ธ Bํธ๋ฆฌ : `M์ฐจ Bํธ๋ฆฌ`
+
+ -> `M์ฐจ Bํธ๋ฆฌ`๊ฐ ๊ฐ์ง ์ ์๋ ์ต์ ์์ ๋
ธ๋์ ๊ฐ์ : `M/2(๋ฐ์ฌ๋ฆผ)`
+
+ - Bํธ๋ฆฌ๋ ๋ชจ๋ ๋ฆฌํ ๋
ธ๋์ ๊น์ด๊ฐ ๊ฐ๋ค
+
+ - **B+ ํธ๋ฆฌ** : Bํธ๋ฆฌ์ ํฐ ๊ณจ๊ฒฉ์ ์ ์ฌํ์ง๋ง ์๋์ ๊ฐ์ ์ฐจ์ด์ ์ด ์์
+ - B+ํธ๋ฆฌ์์๋ ์ค์ง์ ์ธ ๋ฐ์ดํฐ๊ฐ ๋ชจ๋ ์ตํ์ ๋ฆฌํ ๋
ธ๋์ ์์น
+ - B+ํธ๋ฆฌ์์ ์ค์ง์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ ์ตํ์ ๋ฆฌํ๋
ธ๋๋ ์ฐ๊ฒฐ๋ฆฌ์คํธ์ ํํ๋ฅผ ๋๊ณ ์์
+
+
+
+---
+
+## ๐ ์ถ๊ฐ ํ์ต ํ์
+๊ทธ๋ฆผ์๋ฃ์ ์ค๋ฅ๊ฐ ์๋ ๊ฒ ๊ฐ์์ Bํธ๋ฆฌ์ ๋ํด ์์ธํ ์ฐพ์๋ณด์๋ค.
+
+โฌ๏ธ ๋ฌธ์ ์ ๊ทธ๋ฆผ
+
+
+
+B ํธ๋ฆฌ์ ๊ฐ ๋
ธ๋์๋ `ํ๋ ์ด์์ ํค๊ฐ`์ด ์กด์ฌํ๊ณ ๊ฐ ํค๋ค์ด `์ค๋ฆ์ฐจ์`์ผ๋ก ์ ์ฅ๋์ด ์๋ค.
+๋ฃจํธ๋
ธ๋๋ ์์ฒ๋ผ 2๊ฐ์ ํค๊ฐ ์กด์ฌํ๊ณ ,
+์ด๋, ์๋ธํธ๋ฆฌ L์ ๋ฃจํธ์ธ ๋
ธ๋ B๋ ๊ฐ์ฅ ์์ ํค๊ฐ์ด์ด์ผ ํ๋ฏ๋ก -> `์๋ธํธ๋ฆฌL < key1`
+
+๊ทธ๋ฆฌ๊ณ ์๋ธํธ๋ฆฌ M์ ๋ฃจํธ์ธ ๋
ธ๋ C๋ key1๊ณผ key2 ๊ฐ์ ์ฌ์ด์ ์์น ํ๋ฏ๋ก `key1 < ์๋ธํธ๋ฆฌ M < key 2`
+
+๋ง์ง๋ง์ผ๋ก ๋
ธ๋ D์ ๊ฒฝ์ฐ key2๋ณด๋ค ํฐ ๊ฐ์ ๊ฐ์ ธ์ผํ๋ค.
+๋ฐ๋ผ์ ๊ทธ๋ฆผ ์๋์ ์ฃผ์์ `key2 < ์๋ธํธ๋ฆฌ R` ์ด๋ ๊ฒ ๋ฐ๊ปด์ผํ๋ค.
+
+
+---
+
+## ๐ก ์ฐธ๊ณ ์๋ฃ
+- https://velog.io/@chanyoung1998/B%ED%8A%B8%EB%A6%AC
+- https://matice.tistory.com/8
+
diff --git "a/DataStructure/\355\225\264\354\213\234 \355\205\214\354\235\264\353\270\224/\355\225\264\354\213\234 \355\205\214\354\235\264\353\270\224_\354\230\210\354\247\200.md" "b/DataStructure/\355\225\264\354\213\234 \355\205\214\354\235\264\353\270\224/\355\225\264\354\213\234 \355\205\214\354\235\264\353\270\224_\354\230\210\354\247\200.md"
new file mode 100644
index 0000000..8b834fa
--- /dev/null
+++ "b/DataStructure/\355\225\264\354\213\234 \355\205\214\354\235\264\353\270\224/\355\225\264\354\213\234 \355\205\214\354\235\264\353\270\224_\354\230\210\354\247\200.md"
@@ -0,0 +1,115 @@
+## ๐ ํ์ต ์ฃผ์
+
+- **์ฃผ์ **: ํด์ํ
์ด๋ธ
+- **๋ ์ง**: 2024.10.21 - 2024.10.27
+
+---
+
+## ๐ ํ์ต ๋ด์ฉ ์์ฝ
+
+### [ํด์ํ
์ด๋ธ]
+- **`ํด์ํ
์ด๋ธ(hash table)`** : `ํค(key)`์ `๊ฐ(value)`์ ๋์์ผ๋ก ์ด๋ฃจ์ด์ง ํ์ ๊ฐ์ ํํ์ ์๋ฃ๊ตฌ์กฐ
+ - ํด์ ํ
์ด๋ธ ๊ตฌ์กฐ
+ - `ํค(key)` : ํด์ ํ
์ด๋ธ์ ๋ํ ์
๋ ฅ
+ - `๊ฐ(value)` : ํค๋ฅผ ํตํด ์ป๊ณ ์ ํ๋ ๋ฐ์ดํฐ
+ - ๊ฐ์ ์ ์ฅ์์น : `๋ฒํท(bucket)`
+ - ์ ์ฅ๋ ๋ฐ์ดํฐ์ ์ / ๋ฒํท์ ์ : `๋ก๋ํฉํฐ(load factor)`
+
+ -> ํด์ ํ
์ด๋ธ์ด ์ผ๋ง๋ ๊ฐ๋ ์ฐจ์๋์ง์ ๋ํ ์งํ
+
+ -> ๋ก๋ ํฉํฐ๊ฐ ํด์๋ก ํด์ ํ
์ด๋ธ์ ์ฑ๋ฅ์ด ๋จ์ด์ง๋ค
+ - `ํด์ ํจ์` : ํค๋ฅผ ์ธ์๋ก ํ์ฉํด ์ธ๋ฑ์ค๋ฅผ ๋ฐํ(ํด์ํจ์์ ํค๋ฅผ ํต๊ณผ ์์ผ ์ํ๋ ๋ฒํท์ ์ ๊ทผ)
+
+ - ์ฝ์
/์ญ์ /๊ฒ์ ์ฐ์ฐ์ ์๊ฐ๋ณต์ก๋ : **`O(1)`**
+
+ -> ์คํ๊ณผ ๋ฌด๊ดํ๊ฒ ํญ์ ์ผ์ ํ ์๋ ๋ณด์ฅ
+
+ - ๋จ์
+ - ์๋๊ฐ ๋น ๋ฅด์ง๋ง, ์๋์ ์ผ๋ก ๋ง์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ ์๋ชจ๋จ
+
+ -> ๋ฐ์ดํฐ๊ฐ ๋ง์ ์๋ก ๊ณต๊ฐ ๋ณต์ก๋๊ฐ ์๊ฐ๋ณต์ก๋๋งํผ ์ฐ์ํ์ง ์๋ค.
+
+---
+
+### [ํด์ ํจ์]
+- **`ํด์ ํจ์(hash function)`** : ์์์ ๊ธธ์ด๋ฅผ ์ง๋ ๋ฐ์ดํฐ๋ฅผ ๊ณ ์ ๋ ๊ธธ์ด๋ก ๋ณํํ๋ ๋จ๋ฐฉํฅ ํจ์
+-> ํน์ ์
๋ ฅ ๋ฐ์ดํฐ๋ฅผ ๊ณ ์ ๋ ๊ธธ์ด์ ํด์๊ฐ์ผ๋ก ๋ณํ O
+-> ํด์๊ฐ์ ํ ๋๋ก ์ด๋ค ๋ฐ์ดํฐ๊ฐ ์
๋ ฅ๋์๋์ง ๋์ถ X
+
+ - ํด์ ํจ์์ ์ฐ์ฐ๋ฐฉ๋ฒ
+ - `ํด์ ์๊ณ ๋ฆฌ์ฆ` : MD5, SHA-1, SHA-256, SHA-512, HMAC ๋ฑ
+
+ -> sha-1์ ๊ฒฝ์ฐ `ํด์ ์ถฉ๋`์ด ๋ฐ์ํ ์ ์์ด ์ญ์ฌ์์ผ๋ก ์ฌ๋ผ์ง
+
+ - ํ์ฉ
+ - ๋ฌด์์ ๊ฐ์ ๋ง๋ค๊ฑฐ๋ ๋จ๋ฐฉํฅ ์ํธ๋ฅผ ๋ง๋ค ๋
+ - ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ์ ๊ฒ์ฆํ ๋
+
+ - ๋จ์ ๊ตฌํ
+ > โ
**๋ชจ๋๋ฌ ์ฐ์ฐ**
+ 'A mod B' - A๋ฅผ B๋ก ๋๋ ๋๋จธ์ง
+
+ ex) 10 mod 3 = 1
+ โ ๋จ, ์ด๋ ๊ฒ ๊ตฌํํ ๊ฒฝ์ฐ `ํด์ ์ถฉ๋`์ ์ฐ๋ ค๊ฐ ์๋ค.
+
+---
+
+### [ํด์ ์ถฉ๋]
+-**`ํด์ ์ถฉ๋`** ์๋ก ๋ค๋ฅธ ํค์ ๋ํด ๊ฐ์ ํด์ ๊ฐ์ด ๋์๋๋ ์ํฉ
+ex) ๋ค๋ฅธ ์ด๋ฆ์ ๊ฐ์ ์ ํ๋ฒํธ๊ฐ ๋์๋ ์ํฉ
+
+- ๋ํ case
+ - SHA-1
+
+ > ํ์ผ1.pdf์ ํ์ผ2.pdf๋ ์๋ก ๋ค๋ฅธ pdfํ์ผ์ด๋ค. ๊ทธ๋ฌ๋ ํด์๊ฐ์ ๊ตฌํ ๊ฒฝ์ฐ sha-1 ์๊ณ ๋ฆฌ์ฆ์์๋ง ๋์ผํ ํด์๊ฐ์ด ๋์ถ๋๋ค.(์ถฉ๋๋ฐ์)
+
+ - ํด๊ฒฐ๋ฐฉ์
+ 1) `์ฒด์ด๋(chaining)` : ์ถฉ๋์ด ๋ฐ์ํ ๋ฐ์ดํฐ๋ฅผ ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ก ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ
+
+ -> ์๋ก ๋ค๋ฅธ ํค๊ฐ ๊ฐ์ ์์น๋ก ํด์๋์ด๋ ๋จ์ํ ์ฐ๊ฒฐ๋ฆฌ์คํธ์ ๋
ธ๋๋ง ์ถ๊ฐ๋จ.
+
+ > โ ๋จ, ์ถฉ๋์ด ๋ฐ์ํ ๋๋ง๋ค ๋
ธ๋๊ฐ ์ถ๊ฐ๋๋ค๋ฉด ๋น ๋ฅธ์๋๋ผ๋ ์ฅ์ ์ด ์ฌ๋ผ์ง
+
+ 
+
+ 2) `๊ฐ๋ฐฉ์ฃผ์๋ฒ(open addressing)` : ์ถฉ๋์ด ๋ฐ์ํ ๋ฒํท์ ์ธ๋ฑ์ค๊ฐ ์๋ ๋ค๋ฅธ ์ธ๋ฑ์ค์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐฉ๋ฒ
+ - `์กฐ์ฌ(๋ค๋ฅธ ๋ฒํท์ ์ธ๋ฑ์ค๋ฅผ ์ฐพ๋ ๊ณผ์ )`๋ฐฉ๋ฒ์ ๋ฐ๋ฅธ ๊ตฌ๋ถ
+ - `์ ํ ์กฐ์ฌ๋ฒ` : ์ถฉ๋์ด ๋ฐ์ํ์ ๋, ์ถฉ๋์ด ๋ฐ์ํ ์ธ๋ฑ์ค์ ๋ค์ ์ธ๋ฑ์ค๋ถํฐ ์์ฐจ์ ์ผ๋ก ๊ฐ์ฉํ ์ธ๋ฑ์ค๋ฅผ ์ฐพ์ ๋์๋ ๋ฐฉ๋ฒ
+ 
+
+ > โ ์ถฉ๋์ด ๋ฐ์ํ๋ ์ธ๋ฑ์ค ์ธ๊ทผ์ ๋ฐ์ดํฐ๊ฐ ๋ชฐ๋ ค ์ ์ฅ๋ ์ ์์(๊ตฐ์งํ)
+
+ - `์ด์ฐจ ์กฐ์ฌ๋ฒ` : ์ถฉ๋์ด ๋ฐ์ํ ์ธ๋ฑ์ค์์ ์ ๊ณฑ์๋งํผ ๋จ์ด์ง ๊ฑฐ๋ฆฌ์ ์์นํ ์ธ๋ฑ์ค๋ฅผ ์ฐพ๋ ๋ฐฉ๋ฒ
+
+ ex) bucket์ ํฌ๊ธฐ๋ 7, key๊ฐ 8์ ๋ํด ํด์ ๊ฐ 10(h(8) = 10)์ด๋ผ๊ณ ๊ฐ์
+
+ (1) h(8) mod 7 = 10 mod 7 = 3ย ย ย ย ย ย ย ย // 1์ฐจ ์ถฉ๋ ๋ฐ์ ๊ฐ์
+
+ (2) (h(8) + 1^2) mod 7 = 11 mod 7 = 4ย // 2์ฐจ ์ถฉ๋ ๋ฐ์ ๊ฐ์
+
+ (3) (h(8) + 2^2) mod 7 = 14 mod 7 = 0 // 3์ฐจ ์ถฉ๋ ๋ฐ์ ๊ฐ์
+
+ (4) (h(8) + 3^2) mod 7 = 19 mod 7 =ย 5 // ์ ์ฅ
+
+ > โ but ์ ๊ณฑ์์ ๊ท์น์ฑ์ผ๋ก ์ธํด ๊ทผ๋ณธ์ ์ธ ํด๊ฒฐ X
+
+
+---
+
+
+
+## ๐ ์ถ๊ฐ ํ์ต ํ์
+๋ฐ์ดํฐ๊ฐ ๋ง์์ง ๊ฒฝ์ฐ ๋ค๋ฅธ ๋ฐ์ดํฐ๊ฐ ๊ฐ์ ํด์ ๊ฐ์ผ๋ก ์ถฉ๋์ด ๋ฐ์ํ๋ ํ์์ ๊ฐ์ํ๋ฉด์๋ ํด์ ํ
์ด๋ธ์ ์ฌ์ฉํ๋ ์ด์ ๊ฐ ๊ถ๊ธํด์ ์ฐพ์๋ณด์๋ค.
+
+- ์ ์ ์์์ผ๋ก ๋ง์ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํจ
+- ํ๋๋์คํฌ๋ ํด๋ผ์ฐ๋์ ์กด์ฌํ๋ ๋ฌดํํ ๋ฐ์ดํฐ๋ค์ ์ ํํ ๊ฐ์์ ํด์๊ฐ์ผ๋ก ๋งคํ
+- ์ธ์ ๋ ๋์ผํ ํด์๊ฐ ๋ฆฌํด : index๋ฅผ ์๋ฉด ๋น ๋ฅธ ๋ฐ์ดํฐ ๊ฒ์์ด ๊ฐ๋ฅํด์ง
+
+-> ํด์ํ
์ด๋ธ์ ์๊ฐ๋ณต์ก๋ O(1) - (์ด์งํ์ํธ๋ฆฌ O(logN))
+
+
+---
+
+## ๐ก ์ฐธ๊ณ ์๋ฃ
+- https://you88.tistory.com/36
+- https://lealea.tistory.com/251
\ No newline at end of file