Union-Find(์ ๋์จ ํ์ธ๋)
๊ทธ๋ํ ์๊ณ ๋ฆฌ์ฆ ์ค ํ๋๋ก ์๋ก์(disjoint sets) ์งํฉ ์๋ฃ๊ตฌ์กฐ์ด๋ค.
์๋ก์ ์งํฉ์ด๋ ๊ณตํต ์์๊ฐ ์๋ ๋ ์งํฉ์ ์๋ฏธํ๋ค.
์๋ก์ ์งํฉ ์๋ฃ๊ตฌ์กฐ๋ฅผ ๊ตฌํํ ๋๋ ํธ๋ฆฌ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ด์ฉํ์ฌ ์งํฉ์ ํํํ๋๋ฐ, ์๋ก์ ์งํฉ ์ ๋ณด(ํฉ์งํฉ ์ฐ์ฐ)๊ฐ ์ฃผ์ด์ก์ ๋ ํธ๋ฆฌ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ด์ฉํด์ ์งํฉ์ ํํํ๋ ์๋ก์ ์งํฉ ๊ณ์ฐ ์๊ณ ๋ฆฌ์ฆ์ ๋ค์๊ณผ ๊ฐ๋ค.
1. union(ํฉ์งํฉ)์ฐ์ฐ์ ํ์ธํ์ฌ, ์๋ก ์ฐ๊ฒฐ๋ ๋ ๋
ธ๋ A, B๋ฅผ ํ์ธํ๋ค.
- A์ B์ ๋ฃจํธ ๋
ธํธ A', B'๋ฅผ ๊ฐ๊ฐ ์ฐพ๋๋ค.
- A'๋ฅผ B'์ ๋ถ๋ชจ ๋
ธ๋๋ก ์ค์ ํ๋ค.(B'๊ฐ A'๋ฅผ ๊ฐ๋ฆฌํค๋๋ก ํ๋ค.)
2. ๋ชจ๋ union(ํฉ์งํฉ) ์ฐ์ฐ์ ์ฒ๋ฆฌํ ๋๊น์ง 1๋ฒ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
17. Union-Find(ํฉ์งํฉ ์ฐพ๊ธฐ) : ๋ค์ด๋ฒ ๋ธ๋ก๊ทธ (naver.com)
์ถ์ฒ: ์ทจ์ ์ ์ํ ์ด๊ฒ์ด ์ฝ๋ฉ ํ ์คํธ๋ค with ํ์ด์ฌ
'๐จ๐ปโ๐ป programming > โฝ ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Algorithm/ Sparse Table (ํฌ์ํ ์ด๋ธ)] ๋ฐฑ์ค 17435๋ฒ๊ณผ ํจ๊ป (0) | 2023.02.01 |
---|---|
[Algorithm/Shortest Path] A* ์๊ณ ๋ฆฌ์ฆ - ๊ตฌํC++ (0) | 2022.06.20 |
[Algorithm/MST] ํ๋ฆผ(Prim) ์๊ณ ๋ฆฌ์ฆ (0) | 2022.03.07 |
[Algorithm/MST] ํฌ๋ฃจ์ค์นผ(Kruscal) ์๊ณ ๋ฆฌ์ฆ (0) | 2022.03.03 |
[Algorithm] ์ต์ ๋น์ฉ ์ ์ฅ ํธ๋ฆฌ (MST, Minimum SpanningTree) (0) | 2022.02.17 |
์ ํ๋ ๊ฒ ๋ณด๋ค ๋ซ๊ฒ ์ง
ํฌ์คํ ์ด ์ข์๋ค๋ฉด "์ข์์โค๏ธ" ๋๋ "๊ตฌ๋ ๐๐ป" ํด์ฃผ์ธ์!