์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- ๊ณจ๋5
- ๋์ปค
- ๋์์ธํจํด
- Express
- ๋ฐฑ์ค ์๊ณ ๋ฆฌ์ฆ
- ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ
- ๊ณจ๋3
- DP
- BFS
- DFS
- ๊ณจ๋4
- ์คํ๋ง๋ถํธ
- ETRI
- ์๊ณ ๋ฆฌ์ฆ
- ์ ์ฒ๊ธฐ
- express.js
- ์๋ฃ๊ตฌ์กฐ
- ์ฝ๋ฉํ ์คํธ ๊ณ ๋์ kit
- ์ธ์คํด์ค
- Docker
- EC2
- ๋ฐฐํฌ
- ํ๋ก๊ทธ๋๋จธ์ค
- ํ๋ก์ ํธ
- ์คํ๋ง ๋ถํธ
- ์๋ผ์คํฑ๋น์คํก
- ์๋ฐ
- ํ๊ตญ์ ์ํต์ ์ฐ๊ตฌ์
- ๋์
- aws
๋ชฉ๋ก์๋ฃ๊ตฌ์กฐ (9)
JUINTINATION
์ต์ ์ ์ฅ ํธ๋ฆฌ(MST)๋? ๊ฐ์ค์น ๊ทธ๋ํ์์ ์ฌ์ดํด ์์ด ๋ชจ๋ ์ ๋ค์ ์ฐ๊ฒฐ์ํจ ํธ๋ฆฌ๋ค ์ค ์ ๋ถ๋ค์ ๊ฐ์ค์น ํฉ์ด ์ต์์ธ ํธ๋ฆฌ ์ฆ, ์ด๋ค ๊ฐ์ค์น ๊ทธ๋ํ์ ์ ์ฅ ํธ๋ฆฌ ์ค ์ ๋ถ๋ค์ ๊ฐ์ค์น ํฉ์ด ์ต์์ธ ํธ๋ฆฌ ์ ์ฅ ํธ๋ฆฌ๋ ๊ทธ๋ํ์์ ์ฌ์ดํด ์์ด ๋ชจ๋ ์ ๋ค์ ์ฐ๊ฒฐ์ํจ ํธ๋ฆฌ๋ก ์ฃผ์ด์ง ๊ทธ๋ํ์ ์ ์ฅ ํธ๋ฆฌ๋ฅผ ์ฐพ์ผ๋ ค๋ฉด ์ฌ์ดํด์ด ์๋๋ก ๋ชจ๋ ์ ์ ์ฐ๊ฒฐ์ํค๋ฉด ๋๋ค. ์ ์ฅ ํธ๋ฆฌ๋ ๊ทธ๋ํ์์ ์ฌ์ดํด ์์ด ๋ชจ๋ ์ ๋ค์ ์ฐ๊ฒฐ์ํจ ํธ๋ฆฌ๋ก ๊ทธ๋ํ์ ์ ์ด n๊ฐ ์๋ค๋ฉด ์ ์ฅ ํธ๋ฆฌ์๋ n-1๊ฐ์ ์ ๋ถ์ด ์๋ค. ๋ค์ ์์์์ ์ผ์ชฝ ๊ทธ๋ฆผ์ ๊ทธ๋ํ์ ์ต์ ์ ์ฅ ํธ๋ฆฌ๋ ์ค๋ฅธ์ชฝ ๊ทธ๋ฆผ์ ๊ทธ๋ํ์ ๊ฐ๋ค. MST๋ฅผ ์ฐพ๊ธฐ ์ํ ์๊ณ ๋ฆฌ์ฆ ์ต์ ์ ์ฅ ํธ๋ฆฌ๋ฅผ ์ฐพ๋ ๋ํ์ ์ธ ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก๋ ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ(Kruskal's Algorithm)๊ณผ ํ๋ฆผ ์๊ณ ๋ฆฌ..
ํด์ ํ ์ด๋ธ์ด๋? ํด์ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ ฅ ํค ๊ฐ์ผ๋ก๋ถํฐ ํด์ ๊ฐ์ ์ป์ด ๊ทธ๊ฒ์ ์ธ๋ฑ์ค๋ก ์ฌ์ฉํ์ฌ ํจ์จ์ ์ธ ๊ฒ์ ๋ฐฉ์์ ์ ๊ณตํ๋ ์๋ฃ๊ตฌ์กฐ ์์๊ฐ ์ ์ฅ๋ ์๋ฆฌ๊ฐ ์์์ ๊ฐ์ ์ํด ๊ฒฐ์ ๋จ ๋งค์ฐ ๋น ๋ฅธ ์๋ต์ ์ํ๋ ๊ฒฝ์ฐ์ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋จ ex) ์ฃผ๋ฏผ ๋ฑ๋ก ์์คํ ๊ณผ ๊ฐ์ ํธ์ถ ๋ฒํธ ๊ด๋ จ ๊ฒ์ ํด์ ํจ์ ํด์ ํจ์๋ฅผ ์ ์ฉํ์ฌ ์ ๋ ฅ ํค๊ฐ์ผ๋ก๋ถํฐ ํด์ ๊ฐ์ ์ป์์ ๋ ์ ๋ ฅ ์์๊ฐ ํด์ ํ ์ด๋ธ์ ๊ณจ๊ณ ๋ฃจ ์ ์ฅ๋์ด์ผ ํ๋ค. ๊ณ์ฐ์ด ๊ฐ๋จํด์ผ ํ๋ฉฐ ๋ํ์ ์ผ๋ก ๋๋๊ธฐ ๋ฐฉ๋ฒ๊ณผ ๊ณฑํ๊ธฐ ๋ฐฉ๋ฒ์ด ์๋ค. ๋๋๊ธฐ ๋ฐฉ๋ฒ(Division Method) h(x) = x mod m m: ํด์ ํ ์ด๋ธ ์ฌ์ด์ฆ, ๋ณดํต ์์๋ก ์ง์ ๊ณฑํ๊ธฐ ๋ฐฉ๋ฒ(Multiplication Method) h(x) = (xA mod 1) * m A: 0
์๋ก์ ์งํฉ(Disjoint Set)์ด๋? ๊ณตํต ์์๊ฐ ์๋ ๋ ์งํฉ, ์ฆ A∩B=∅์ ๋ง์กฑ์ํค๋ ๋ ์งํฉ A, B๋ฅผ ์๋ก์ ์งํฉ์ด๋ผ๊ณ ํ๋ค. ์ ๋์จ ํ์ธ๋(Union-Find)๋? ์๋ก์ ์งํฉ์ ๋ํ ์ฐ์ฐ์ ํ ๋ ์ฌ์ฉํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ์ฌ์ด ์ดํด๋ฅผ ์ํด ๋ค์์ ์์๋ฅผ ๋ณด์. https://www.acmicpc.net/problem/1717 1717๋ฒ: ์งํฉ์ ํํ ์ด๊ธฐ์ $n+1$๊ฐ์ ์งํฉ $\{0\}, \{1\}, \{2\}, \dots , \{n\}$์ด ์๋ค. ์ฌ๊ธฐ์ ํฉ์งํฉ ์ฐ์ฐ๊ณผ, ๋ ์์๊ฐ ๊ฐ์ ์งํฉ์ ํฌํจ๋์ด ์๋์ง๋ฅผ ํ์ธํ๋ ์ฐ์ฐ์ ์ํํ๋ ค๊ณ ํ๋ค. ์งํฉ์ ํํํ๋ ํ๋ก๊ทธ๋จ์ ์ www.acmicpc.net ์์ ๋ฌธ์ ์ฒ๋ผ ์ด๊ธฐ์ n+1๊ฐ์ ์งํฉ {0}, {1}, {2}, ... , {n}์ด..
ํ์ด๋? ์ต๋๊ฐ ๋ฐ ์ต์๊ฐ์ ์ฐพ์๋ด๋ ์ฐ์ฐ์ ๋น ๋ฅด๊ฒ ํ๊ธฐ ์ํด ๋ค์๊ณผ ๊ฐ์ ๊ท์น์ ๊ฐ๋ ์์ ์ด์งํธ๋ฆฌ๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ํ ์๋ฃ๊ตฌ์กฐ A๊ฐ B์ ๋ถ๋ชจ๋ ธ๋(parent node) ์ด๋ฉด, A์ ํค(key)๊ฐ๊ณผ B์ ํค๊ฐ ์ฌ์ด์๋ ๋์๊ด๊ณ๊ฐ ์ฑ๋ฆฝํ๋ค. ํ์๋ ๋๊ฐ์ง ์ข ๋ฅ๊ฐ ์๋ค. ์ต๋ ํ: ๋ถ๋ชจ๋ ธ๋์ ํค ๊ฐ์ด ์์๋ ธ๋์ ํค ๊ฐ๋ณด๋ค ํญ์ ํฐ ํ ์ต์ ํ: ๋ถ๋ชจ๋ ธ๋์ ํค ๊ฐ์ด ์์๋ ธ๋์ ํค ๊ฐ๋ณด๋ค ํญ์ ์์ ํ ๋๋ถ๋ถ์ ๊ฒฝ์ฐ๋ ์์๋ ธ๋์ ๊ฐ์๊ฐ ์ต๋ 2๊ฐ์ธ ์ด์ง ํ(binary heap)์ ์ฌ์ฉ ๊ฐ์ฅ ๋์(ํน์ ๊ฐ์ฅ ๋ฎ์) ์ฐ์ ์์๋ฅผ ๊ฐ์ง๋ ๋ ธ๋๊ฐ ํญ์ ๋ฃจํธ ๋ ธ๋์ ์ค๊ฒ ๋๋ ํน์ง์ด ์์ ์ด๋ฅผ ์์ฉํ์ฌ ์ฐ์ ์์ ํ์ ๊ฐ์ ์ถ์์ ์๋ฃํ์ ๊ตฌํํ ์ ์๋ค. ํ์ ์ฃผ์ ์ฐ์ฐ ์ต์ ํ์ ๊ธฐ์ค์ผ๋ก ํ์ ์ฃผ์ ์ฐ์ฐ์ ๋ค์๊ณผ ๊ฐ๋ค. ..
ํธ๋ฆฌ๋? ๊ณ์ธต์ (Hierarchical)์ธ ๊ตฌ์กฐ๋ฅผ ๋ํ๋ด๋ ๋น์ ํ ์๋ฃ๊ตฌ์กฐ ๋๋ฌด๋ฅผ ๋ค์ง์ด๋์ ๋ชจ์๊ณผ ๋ฎ์๋ค๊ณ ํด์ ๋ถ์ฌ์ง ์ด๋ฆ ๋ถ๋ชจ-์์ ๊ด๊ณ์ ๋ ธ๋๋ค๋ก ์ด๋ฃจ์ด์ง๋ค. ex) Decision Tree(์์ฌ ๊ฒฐ์ ํธ๋ฆฌ) in AI ๋ฆฌ์คํธ, ์คํ, ํ ๋ฑ์ ์ ํ ๊ตฌ์กฐ ํธ๋ฆฌ ์ฉ์ด ๋ ธ๋(node): ํธ๋ฆฌ์ ๊ตฌ์ฑ์์ ๋ฃจํธ(root): ๋ถ๋ชจ๊ฐ ์๋ ๋ ธ๋(A) ์๋ธํธ๋ฆฌ(subtree): ํ๋์ ๋ ธ๋์ ๊ทธ ๋ ธ๋๋ค์ ์์๋ค๋ก ์ด๋ฃจ์ด์ง ํธ๋ฆฌ ๋จ๋ง๋ ธ๋(terminal node): ์์์ด ์๋ ๋ ธ๋ ๋น๋จ๋ง๋ ธ๋(leaf node): ์ ์ด๋ ํ๋์ ์์์ ๊ฐ์ง๋ ๋ ธ๋ ๋ ๋ฒจ(level): ํธ๋ฆฌ์ ๊ฐ์ธต์ ๋ฒํธ ๋์ด(height): ํธ๋ฆฌ์ ์ต๋ ๋ ๋ฒจ ์ฐจ์(degree): ๋ ธ๋๊ฐ ๊ฐ์ง๊ณ ์๋ ์์ ๋ ธ๋์ ๊ฐ์ A๋ ๋ฃจํธ ๋ ธ๋์ด๋ค. B๋ ..
๊ทธ๋ํ(Graph)๋? ์ฐ๊ฒฐ๋์ด ์๋ ๊ฐ์ฒด ๊ฐ์ ๊ด๊ณ๋ฅผ ํํํ๋ ์๋ฃ๊ตฌ์กฐ ๊ทธ๋ํ G๋ (V, E)๋ก ํ์ ์ ์ (vertices) ์ฌ๋ฌ ๊ฐ์ง ํน์ฑ์ ๊ฐ์ง ์ ์๋ ๊ฐ์ฒด ๋ ธ๋(node)๋ผ๊ณ ๋ ๋ถ๋ฆผ ๊ฐ์ (edge) ์ ์ ๋ค ๊ฐ์ ๊ด๊ณ ๋งํฌ(link)๋ผ๊ณ ๋ ๋ถ๋ฆผ DFS๋? ๊น์ด ์ฐ์ ํ์(depth-first search)ํ ๋ฐฉํฅ์ผ๋ก ๊ฐ ์ ์์ ๋๊น์ง ๊ฐ๋ค๊ฐ ๋ ์ด์ ๊ฐ ์ ์๊ฒ ๋๋ฉด ๊ฐ์ฅ ๊ฐ๊น์ด ๊ฐ๋ฆผ๊ธธ๋ก ๋์์์ ์ด ๊ณณ์ผ๋ก๋ถํฐ ๋ค๋ฅธ ๋ฐฉํฅ์ผ๋ก ๋ค์ ํ์ ์งํ ์คํ(Stack)์ ์ฌ์ฉํ๊ฑฐ๋ ์ฌ๊ทํจ์ ์ฌ์ฉ # ์ฌ๊ทํจ์๋ฅผ ์ฌ์ฉํ DFS depth_first_search(v): v๋ฅผ ๋ฐฉ๋ฌธ๋์๋ค๊ณ ํ์; for all u ∈ (v์ ์ธ์ ํ ์ ์ ) do if (u๊ฐ ์์ง ๋ฐฉ๋ฌธ๋์ง ์์์ผ๋ฉด) then depth_first_..