[์๋ฃ๊ตฌ์กฐ] ๊ทธ๋ํ(Graph)์ ํํ
2024. 10. 27. 13:18ใ์๋ฃ๊ตฌ์กฐ
728x90
๐ ๊ทธ๋ํ
- ๊ทธ๋ํ๋ ์ฌ๋ฌผ์ ์ ์ (vertex)๊ณผ ๊ฐ์ (edge)์ผ๋ก ๋ํ๋ด๊ธฐ ์ํ ๋๊ตฌ
- ๊ทธ๋ํ๋ ๋ ๊ฐ์ง ๋ฐฉ์์ผ๋ก ๊ตฌํ ๊ฐ๋ฅ
- ์ธ์ ํ๋ ฌ(adjacency matrix): 2์ฐจ์ ๋ฐฐ์ด์ ์ฌ์ฉํ๋ ๋ฐฉ์
- ์ธ์ ๋ฆฌ์คํธ(adjacency list): ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ฅผ ์ด์ฉํ๋ ๋ฐฉ์
๐ ์ธ์ ํ๋ ฌ(Adjacency Matrix)
- ์ธ์ ํ๋ ฌ์์๋ ๊ทธ๋ํ๋ฅผ 2์ฐจ์ ๋ฐฐ์ด๋ก ํํ
- ๋ฌด๋ฐฉํฅ ๋ฌด๊ฐ์ค์น ๊ทธ๋ํ (์๊ธฐ์์ ๊ณผ ๊ฐ์ ์ด ์ฐ๊ฒฐ๋์ด์์ง ์์ ๋ 0์ผ๋ก ํ๊ธฐ)
- ๋ชจ๋ ๊ฐ์ ์ด ๋ฐฉํฅ์ฑ์ ๊ฐ์ง์ง ์๋ ๊ทธ๋ํ๋ฅผ ๋ฌด๋ฐฉํฅ ๊ทธ๋ํ๋ผ๊ณ ํ๋ค.
- ๋ฌด๋ฐฉํฅ ๋น๊ฐ์ค์น ๊ทธ๋ํ๊ฐ ์ฃผ์ด์ก์ ๋ ์ฐ๊ฒฐ๋์ด ์๋ ์ํฉ์ ์ธ์ ํ๋ ฌ๋ก ์ถ๋ ฅํ ์ ์๋ค.
- ๊ฐ์ ์ ๊ฐ์ค์น๊ฐ ์ ํ์์ง ์์
- ๋ฐฉํฅ ๊ฐ์ค์น ๊ทธ๋ํ
- ๋ชจ๋ ๊ฐ์ ์ด ๋ฐฉํฅ์ ๊ฐ์ง๋ ๊ทธ๋ํ๋ฅผ ๋ฐฉํฅ ๊ทธ๋ํ๋ผ๊ณ ํ๋ค.
- ๋ชจ๋ ๊ฐ์ ์ ๊ฐ์ค์น๊ฐ ์๋ ๊ทธ๋ํ๋ฅผ ๊ฐ์ค์น ๊ทธ๋ํ๋ผ๊ณ ํ๋ค.
- ๋ฐฉํฅ ๊ฐ์ค์น ๊ทธ๋ํ๊ฐ ์ฃผ์ด์ก์ ๋ ์ฐ๊ฒฐ๋์ด์๋ ์ํฉ์ ์ธ์ ํ๋ ฌ๋ก ์ถ๋ ฅํ ์ ์๋ค.
๐ ์ธ์ ๋ฆฌ์คํธ(Adjacency List)
- ์ธ์ ๋ฆฌ์คํธ๋ ๊ทธ๋ํ๋ฅผ ๋ฆฌ์คํธ๋ก ํํํ๋ค.
- ๋ฌด๋ฐฉํฅ ๋ฌด๊ฐ์ค์น ๊ทธ๋ํ
- ๋ชจ๋ ๊ฐ์ ์ด ๋ฐฉํฅ์ฑ์ ๊ฐ์ง์ง ์๋ ๊ทธ๋ํ๋ฅผ ๋ฌด๋ฐฉํฅ ๊ทธ๋ํ๋ผ๊ณ ํ๋ค.
- ๋ชจ๋ ๊ฐ์ ์ ๊ฐ์ค์น๊ฐ ์๋ ๊ทธ๋ํ๋ฅผ ๋ฌด๊ฐ์ค์น ๊ทธ๋ํ๋ผ๊ณ ํ๋ค.
- ๋ฌด๋ฐฉํฅ ๋น๊ฐ์ค์น ๊ทธ๋ํ๊ฐ ์ฃผ์ด์ก์ ๋ ์ฐ๊ฒฐ๋์ด ์๋ ์ํฉ์ ์ธ์ ๋ฆฌ์คํธ๋ก ์ถ๋ ฅํ ์ ์๋ค.
- ๋ฐฉํฅ ๊ฐ์ค์น ๊ทธ๋ํ
- ๋ชจ๋ ๊ฐ์ ์ด ๋ฐฉํฅ์ฑ์ ๊ฐ์ง๋ ๊ทธ๋ํ๋ฅผ ๋ฐฉํฅ ๊ทธ๋ํ๋ผ๊ณ ํ๋ค.
- ๋ชจ๋ ๊ฐ์ ์ ๊ฐ์ค์น๊ฐ ์๋ ๊ทธ๋ํ๋ฅผ ๊ฐ์ค์น ๊ทธ๋ํ๋ผ๊ณ ํ๋ค.
- ๋ฐฉํฅ ๊ฐ์ค์น ๊ทธ๋ํ๊ฐ ์ฃผ์ด์ก์ ๋ ์ฐ๊ฒฐ๋์ด ์๋ ์ํฉ์ ์ธ์ ๋ฆฌ์คํธ๋ก ์ถ๋ ฅํ ์ ์๋ค.
๐ ๊ทธ๋ํ์ ์๊ฐ ๋ณต์ก๋
- ์ธ์ ํ๋ ฌ: ๋ชจ๋ ์ ์ ๋ค์ ์ฐ๊ฒฐ ์ฌ๋ถ๋ฅผ ์ ์ฅํด O(V²)์ ๊ณต๊ฐ์ ์๊ตฌํ๋ค.
- ๊ณต๊ฐ ํจ์จ์ฑ์ด ๋จ์ด์ง์ง๋ง, ๋ ๋ ธ๋์ ์ฐ๊ฒฐ ์ฌ๋ถ๋ฅผ O(1)์ ํ์ธํ ์ ์๋ค.
- ์ธ์ ๋ฆฌ์คํธ: ์ฐ๊ฒฐ๋ ๊ฐ์ ์ ์ ๋ณด๋ง์ ์ ์ฅํ์ฌ O(V + E)์ ๊ณต๊ฐ์ ์๊ตฌํ๋ค.
- ๊ณต๊ฐ ํจ์จ์ฑ์ด ์ฐ์ํ์ง๋ง, ๋ ๋ ธ๋์ ์ฐ๊ฒฐ ์ฌ๋ถ๋ฅผ ํ์ธํ๊ธฐ ์ํด O(V)์ ์๊ฐ์ด ํ์ํ๋ค.
ํ์ํ ๋ฉ๋ชจ๋ฆฌ | ์ฐ๊ฒฐ ์ฌ๋ถ ํ์ธ | |
์ธ์ ํ๋ ฌ | O(V²) | O(1) |
์ธ์ ๋ฆฌ์คํธ | O(V + E) | O(V) |
๐ ์ต๋จ ๊ฒฝ๋ก ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํํ ๋, ์ด๋ค ์๋ฃ๊ตฌ์กฐ๊ฐ ์ ์ฉํ ๊น?
- ๊ฐ๊ฐ ๊ทผ์ฒ์ ๋ ธ๋์ ์ฐ๊ฒฐ๋์ด ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ผ๋ฏ๋ก, ๊ฐ์ ๊ฐ์๊ฐ ์ ์ด ์ธ์ ๋ฆฌ์คํธ๊ฐ ์ ๋ฆฌ
์ถ์ฒ: https://fastcampus.co.kr/dev_online_upjscodingtest
728x90
'์๋ฃ๊ตฌ์กฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๋ฃ๊ตฌ์กฐ] ํธ๋ฆฌ(Tree)์ ์ฐ์ ์์ ํ(Priority Queue) (2) | 2024.10.27 |
---|---|
[์๋ฃ๊ตฌ์กฐ] ํ(Queue) (1) | 2024.10.27 |
[์๋ฃ๊ตฌ์กฐ] ์คํ(Stack) (0) | 2024.10.27 |
[์๋ฃ๊ตฌ์กฐ] ๋ฐฐ์ด(Array)๊ณผ ๋ฆฌ์คํธ(List) (0) | 2024.10.27 |
์๋ฃ๊ตฌ์กฐ (0) | 2024.10.25 |