728x90
๋ฐ์ํ
ํ์ต ๋ชฉํ
- ์๋ฃ๊ตฌ์กฐ์ ์ ์์ ๋ถ๋ฅ์ ๋ํ์ฌ ์ค๋ช ํ๊ณ , ์ ํ/๋น์ ํ๊ตฌ์กฐ๋ฅผ ํ์ฉํ ์ ์๋ค.
- ์๊ณ ๋ฆฌ์ฆ์ ์ญํ ์ ์ดํดํ๊ณ ์ํฉ์ ๋ฐ๋ผ ์ ํฉํ ์๊ณ ๋ฆฌ์ฆ์ ์ ํํ ์ ์๋ค.
ํต์ฌ ํค์๋
- ๋ฐฐ์ด, ๋ฆฌ์คํธ, ์คํ, ํ, ๋ฐํฌ, ํธ๋ฆฌ, ๊ทธ๋ํ, ์๊ณ ๋ฆฌ์ฆ์ ์ ์, ์๊ณ ๋ฆฌ์ฆ ์ฑ๋ฅ ๋ถ์, ์ ๋ ฌ/ํ์ ์๊ณ ๋ฆฌ์ฆ
01 ์๋ฃ๊ตฌ์กฐ(Data Structure)
๊ฐ. ์ ์
- ์๋ฃ๊ตฌ์กฐ๋ ์๋ฃ๋ฅผ ์ปดํจํฐ์ ๊ธฐ์ต์ฅ์น ๋ด์ ์ ์ฅํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๋ค์ํ ์๋ฃ๋ฅผ ํจ์จ์ ์ผ๋ก ํํํ๊ณ ํ์ฉํ ์ ์๋๋ก ์๋ฃ์ ํน์ฑ๊ณผ ์ฌ์ฉ์ฉ๋๋ฅผ ๊ณ ๋ คํ์ฌ ์กฐ์ง์ , ์ฒด๊ณ์ ์ผ๋ก ์ ์ํ ๊ฒ์ด๋ค.
๋. ๋ถ๋ฅ
- ์ ํ๊ตฌ์กฐ์ ๋น์ ํ ๊ตฌ์กฐ๋ก ๋๋ ์ ์๋ค.
๋ค. ์คํ๊ณผ ํ
1. ์คํ(Stack)
- ์คํ์ ์ ํ๋ฆฌ์คํธ์ ํ๋์ ๋ฐ์ดํฐ๊ฐ ์ ๋ ฅ๋ ์์๋ก ๊ธฐ์ต๊ณต๊ฐ์ ์ ์ฅ๋์ด ์ถ๋ ฅ์ ํ๊ฒ ๋๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค.
- ์ฆ ์คํ์ ์ ์ฅ๋ ์์๋ top์ผ๋ก ์ ํ ๊ณณ์์๋ง ์ ๊ทผ์ด ๊ฐ๋ฅํ์ฌ top ์์น์์๋ง ์์๋ฅผ ์ฝ์ ํ๊ณ ๋ง์ง๋ง์ ์ฝ์ ํ ์์๋ ๋งจ ์์ ์์ฌ ์๋ค๊ฐ ๊ฐ์ฅ ๋จผ์ ์ถ๋ ฅ๋๊ฒ ๋๋ค.
2. ํ(Queue)
- ์คํ๊ณผ ์ ์ฌํ๊ฒ ์ฝ์ ๊ณผ ์ญ์ ์ ์์น๊ฐ ์ ํ๋์ด ์์ง๋ง ์คํ๊ณผ๋ ๋ฌ๋ฆฌ ๋ฐ์ดํฐ๊ฐ ์ฝ์ ๋๋ ๊ณณ๊ณผ ์ญ์ ๋๋ ๊ณณ์ด ๋ค๋ฅธ ์๋ฃ ๊ตฌ์กฐ์ด๋ค.
- ํ๋ ๋ค์์๋ง ์ฝ์ ๋๊ณ ์์์๋ ์ญ์ ๋ง ํ ์ ์๋ ๊ตฌ์กฐ๋ก ์ฝ์ ๋ ์์๋๋ก ์์๊ฐ ๋์ด๋์ด ๊ฐ์ฅ ๋จผ์ ์ฝ์ ํ ์์๋ ๋งจ ์์ ์๋ค๊ฐ ๊ฐ์ฅ ๋จผ์ ์ญ์ ๋๋ค.
3. ์คํ๊ณผ ํ์ ์ฐ์ฐ ๋น๊ต
๋ผ. ํธ๋ฆฌ์ ๊ทธ๋ํ
1. ํธ๋ฆฌ(Tree)
- ์์๋ค ๊ฐ์ ๊ณ์ธต๊ด๊ณ๋ฅผ ๊ฐ์ง๋ ๊ณ์ธตํ ์๋ฃ๊ตฌ์กฐ๋ก ์์์์์์ ํ์์์๋ก ๋ด๋ ค๊ฐ๋ฉด์ ํ์ฅ๋๋ ๋๋ฌด๋ชจ์์ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ ์๋ค ๊ฐ์ 1:๋ค ๊ด๊ณ๋ฅผ ๊ฐ์ง๋ค
2. ๊ทธ๋ํ(Graph)
- ์ฐ๊ฒฐ๋์ด ์๋ ์์ ์ฌ์ด์ ๋ค:๋ค ๊ด๊ณ๋ฅผ ํํํ๋ ์๋ฃ๊ตฌ์กฐ ๊ฐ์ฒด๋ฅผ ๋ํ๋ด๋ ์ ์ (vertex)๊ณผ ๊ฐ์ฒด๋ฅผ ์ฐ๊ฒฐํ๋ ๊ฐ์ (edge)์ ์งํฉ์ด๋ค.
- ์ ๊ธฐํ๋ก๋ถ์, ์ต๋จ๊ฑฐ๋ฆฌ ๊ฒ์, ์ธ๊ณต์ง๋ฅ ๋ฑ๊ณผ ๊ฐ์ด ์ฌ๋ฌ๊ฐ์ง ๋ณต์กํ ๋ฌธ์ ๋ค์ ํด๊ฒฐํ ๋ ์ฐ์
- ๊ทธ๋ํ๋ ์ํํ๋ ๊ธฐ๋ฅ์ด๋ ์์ฉ๋ฐฉ๋ฒ์ ๋ฐ๋ผ ๋ค์ํ ๊ตฌํ๋ฐฉ๋ฒ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ ๋ด ํํ๋๋ค.
- ์ธ์ ํ๋ ฌ(Adjacency Matrix): ์์ฐจ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ด์ฉํ ๊ทธ๋ํ ๊ตฌํ ๋ฐฉ์์ผ๋ก ํ๋ ฌ์ ๋ํ 2์ฐจ์ ๋ฐฐ์ด์ ์ฌ์ฉํ์ฌ ๊ทธ๋ํ์ ๋ ์ ์ ์ ์ฐ๊ฒฐํ ๊ฐ์ ์ ์ ๋ฌด๋ฅผ ํ๋ ฌ๋ก ์ ์ฅํ๋ ๋ฐฉ์
- ์ธ์ ๋ฆฌ์คํธ(Adjacency List): ์ฐ๊ฒฐ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ด์ฉํ ๊ตฌํ๋ฐฉ์์ผ๋ก ๊ฐ ์ ์ ์ ๋ํ ์ธ์ ์ ์ ๋ค์ ์ฐ๊ฒฐํ์ฌ ๋ง๋ ๋จ์ ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ก ๊ฐ ์ ์ ์ ์ฐจ์๋งํผ ๋ ธ๋๋ฅผ ์ฐ๊ฒฐํ๋ ๋ฐฉ์
๋ง. ์๋ฃ๊ตฌ์กฐ์ ์ ํ ๊ธฐ์ค
- ์๋ฃ์ ์ฒ๋ฆฌ ์๊ฐ
- ์๋ฃ์ ํฌ๊ธฐ
- ์๋ฃ์ ํ์ฉ ๋น๋
- ์๋ฃ์ ๊ฐฑ์ ์ ๋
- ํ๋ก๊ทธ๋จ์ ์ฉ์ด์ฑ
๋ฐ. ์๋ฃ๊ตฌ์กฐ์ ํ์ฉ
- ๋ฐ์ดํฐ์ ์ ๋ ฌ(Sort),๊ฒ์(Search),ํ์ผ ํธ์ฑ ๋ฐ ์ธ๋ฑ์ค ๋ฑ์์ ์ฃผ๋ก ํ์ฉ๋๋ค.
- ๋ฆฌ์คํธ: ๋ฐฐ์ด์ ๊ตฌํ, DBMS ์ธ๋ฑ์ค, ํ์์ด๋ ์ ๋ ฌ๊ณผ ๊ฐ์ ๋ฌธ์
- ์คํ : ์ธํฐ๋ฝํธ ์ฒ๋ฆฌ, ์ฌ๊ท ํ๋ก๊ทธ๋จ์ ์์ ์ ์ด, ์๋ธ๋ฃจํด์ ๋ณต๊ท ๋ฒ์ง ์ ์ฅ, ํ์ ํ๊ธฐ๋ฒ์ผ๋ก ํํ๋ ์์์ ์ฐ์ฐ, ํ ์คํธ ์๋ํฐ Undo๊ธฐ๋ฅ
- ํ: ์ด์์ฒด์ ์ ์์ ์ค์ผ์ค๋ง, ๋๊ธฐ ํ๋ ฌ์ ์ฒ๋ฆฌ, ๋น๋๊ธฐ ๋ฐ์ดํฐ ๊ตํ, ํค๋ณด๋ ๋ฒํผ ์ด์ฉ, ์คํ ์ด์ฉ
- ๋ฐํฌ: ์คํ๊ณผ ํ์ ์ฅ์ ๋ง ํ์ฉํ ์๋ฃ๊ตฌ์กฐ๋ก ์คํ๊ณผ ํ ๊ด๋ จ ๋ถ์ผ์์ ํ์ฉ
- ํธ๋ฆฌ: ํ์์ด๋ ์ ๋ ฌ๊ณผ ๊ฐ์ ๋ฌธ์ , ๋ฌธ๋ฒ์ ํ์ฑ, ํํ๋ง ์ฝ๋, ๊ฒฐ์ ํธ๋ฆฌ, ๊ฒ์ ๋ฑ
02 ์๊ณ ๋ฆฌ์ฆ(Algorithm)
๊ฐ. ์๊ณ ๋ฆฌ์ฆ ๊ฐ์
1. ์๊ณ ๋ฆฌ์ฆ์ ์ ์
- ์๊ณ ๋ฆฌ์ฆ์ด๋ ์ฃผ์ด์ง ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ์ผ๋ จ์ ์ฒ๋ฆฌ ์ ์ฐจ๋ฅผ ๋จ๊ณ์ ์ผ๋ก ๊ธฐ์ ํ ๊ฒ์ผ๋ก ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ถ์ํํ์ฌ ๋จ๊ณ์ ์ ์ฐจ๋ฅผ ๋ ผ๋ฆฌ์ ์ผ๋ก ๊ธฐ์ ํด ๋์ ๋ช ์ธ์์ด๋ค.
2. ์๊ณ ๋ฆฌ์ฆ์ ์กฐ๊ฑด
๋. ์๊ณ ๋ฆฌ์ฆ ๋ถ์ ๊ธฐ์ค
- ์ ํ์ฑ(Correctness)
- ์์ ๋(Amount of Work Done)
- ๊ธฐ์ต ์ฅ์ ์ฌ์ฉ๋(Amount of Space Used)
- ์ต์ ์ฑ(Optimality)
- ๋จ์์ฑ(Simplicity)
๋ค. ์๊ณ ๋ฆฌ์ฆ ํํ ๋ฐฉ๋ฒ
๋ผ. ์๊ณ ๋ฆฌ์ฆ ์ฑ๋ฅ ๋ถ์
- ์คํ์ ํ์ํ ๊ณต๊ฐ ์ธก๋ฉด์์ ๋ถ์ํ๋ ๊ณต๊ฐ ๋ณต์ก๋์ ์คํ์ ์์๋๋ ์๊ฐ ์ธก๋ฉด์์ ๋ถ์ํ๋ ์๊ฐ ๋ณต์ก๋๋ฅผ ์ถ์ ํ์ฌ ์ผ๋ฐ์ ์ธ ํ๊ฐ๋ฅผ ํ๋ค.
1. ๊ณต๊ฐ ๋ณต์ก๋
- ์๊ณ ๋ฆฌ์ฆ์ ํ๋ก๊ทธ๋จ์ผ๋ก ์คํํ์ฌ ์๋ฃํ๊ธฐ ๊น์ง ํ์ํ ์ด ์ ์ฅ๊ณต๊ฐ์ ์๋ฏธํ๋ค.
2. ์๊ฐ ๋ณต์ก๋
- ์๊ณ ๋ฆฌ์ฆ์ ํ๋ก๊ทธ๋จ์ผ๋ก ์คํํ์ฌ ์๋ฃํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ด๋ค.
๋ง. ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ
1. ์ ๋ ฌ์ ๋ถ๋ฅ
- ๋ด๋ถ์ ๋ ฌ: ์๋์ ๋ฐ์ดํฐ์ ๋ํด ์ฃผ๊ธฐ์ต ์ฅ์น์ ์ฌ๋ ค์ ์ ๋ ฌํ๋ ๋ฐฉ์์ด๋ค. ์ ๋ ฌ์๋๋ ๋น ๋ฅด๋ ์ฃผ๊ธฐ์ต ์ฅ์น์ ์ฉ๋์ ์ํด ์ ๋ ฌํ ์ ์๋ ๋ฐ์ดํฐ์ ์์ด ์ ํ๋จ
- ์ธ๋ถ์ ๋ ฌ : ๋๋์ ๋ฐ์ดํฐ์ ๋ํด ๋ณด์กฐ ๊ธฐ์ต ์ฅ์น์์ ์ ๋ ฌํ๋ ๋ฐฉ์์ผ๋ก ๋๋์ ๋ฐ์ดํฐ๋ฅผ ๋ช ๊ฐ์ ์๋ธ ํ์ผ๋ก ๋๋์ด ๋ด๋ถ ์ ๋ ฌ์ ํ ํ ๋ณด์กฐ๊ธฐ์ต์ฅ์น์์ ์ ๋ ฌ๋ ๊ฐ ์๋ธ ํ์ผ๋ค์ ๋ณํฉํ๋ ๋ฐฉ์์ผ๋ก ์๋๊ฐ ๋๋ฆผ
๋ฐ. ๊ฒ์ ์๊ณ ๋ฆฌ์ฆ
1. ๊ฒ์ ์๊ณ ๋ฆฌ์ฆ ๊ฐ์
- ๋ฐ์ดํฐ์ ์ ๋ ฌ ์ฌ๋ถ์ ๋ฐ๋ผ ๊ตฌ๋ถ ํ๋ค.
- ํด์ฑ: ํน์ ํจ์์ ๋ฐ๋ผ ํค ๊ฐ์ ๊ฒ์ฐํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ๋ค.
2. ๊ฒ์ ์๊ณ ๋ฆฌ์ฆ์ ๋ถ๋ฅ
์ฌ. ๊ทธ๋ํ ํ์ ์๊ณ ๋ฆฌ์ฆ
1. ๊ทธ๋ํ ํ์(Graph Search)
- ๊ทธ๋ํ์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ์ฐ์ฐ์ผ๋ก ํ๋์ ์ ์ ์์ ์์ํ์ฌ ๊ทธ๋ํ์ ์๋ ๋ชจ๋ ์ ์ ์ ํ ๋ฒ์ฉ ๋ฐฉ๋ฌธํ์ฌ ์ฒ๋ฆฌํ๋ ์ฐ์ฐ์ด๋ค.
2. ๊น์ด ์ฐ์ ํ์(DFS, Depth First Search)
3. ๋๋น ์ฐ์ ํ์(BFS, Breadth First Search)
- ํ
์. ์ต์ ์ ์ฅ ํธ๋ฆฌ(Minimum Spanning Tree)
1. ์ต์ ์ ์ฅ ํธ๋ฆฌ
2. ํฌ๋ฃจ์ค์นผ(Kruskal)์๊ณ ๋ฆฌ์ฆ
- ์ ์ ์ ์ฐ๊ฒฐ๋ ๊ฐ์ ๊ฐ์ด๋ฐ ๊ฐ์ค์น๊ฐ ์ต์์ธ ๊ฐ์ ์ ์ ํํ๊ณ ์ถ๊ฐ๋ ๊ฐ์ ์ด ์ฌ์ดํด์ ๋ง๋๋์ง ์ฒดํฌํ๋ ๋ฐฉ์์ผ๋ก ์ฒ๋ฆฌํ๋ค.
- ๊ฐ์ค์น๊ฐ ๊ฐ์ฅ ๋ฎ์ ๊ฐ์ ์ ์ ํํ ํ ์ ์ ๊ณผ ์ฐ๊ฒฐ์ด ๋์ด ์์ง ์๋๋ผ๋ ๊ฐ์ค์น๊ฐ ์์ ๊ฐ์ ์ ์์๋๋ก ์ ํํ๋ ๋ฐฉ๋ฒ์ด๋ค.
3. ํ๋ฆผ(Prime) ์๊ณ ๋ฆฌ์ฆ
- ๋ถ์๋์ ๊ทธ๋ํ์์ ์์์ ํ ์ ์ ์ ์ ํํ์ฌ ๊ฐ ๋ฐ๋ณต๊ณผ์ ๋ง๋ค ๊ทธ๋๊น์ง ๊ตฌ์ฑ๋ ์ต์ ์ ์ฅ ํธ๋ฆฌ ๋ถ๋ถ์ ๋ฐฉ๋ฌธํ์ง ์์ ์๋ก์ด ์ ์ ๊ณผ ๊ฐ์ ์ ์ ํํ์ฌ ํ์ฅํด๋๊ฐ๋ ๋ฐฉ๋ฒ์ด๋ค.
728x90
๋ฐ์ํ
'๐ป Computer Science > topcit' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๊ธฐ์ ์์ญ][01 ์ํํธ์จ์ด ๊ฐ๋ฐ] 2 . ์ํํธ์จ์ด ์ฌ์ฌ์ฉ (0) | 2022.03.18 |
---|---|
[๊ธฐ์ ์์ญ][01 ์ํํธ์จ์ด๊ฐ๋ฐ] 1. ์ํํธ์จ์ด ๊ณตํ ๊ฐ์ (0) | 2022.03.10 |