๋ฌธ์ ๋ ๊ฐ ๋
ธ๋์ ๊ฐ์ด ์๋ n๊ฐ์ ๋
ธ๋๊ฐ ์๋ ํธ๋ฆฌ์์ ๋ ๊ฐ์ ๊ฐ์ฅ์๋ฆฌ๋ฅผ ์ ๊ฑฐํ ํ ์ต์ ์ ์๋ฅผ ์ฐพ๋ ๊ฒ์
๋๋ค. ๋ชฉํ๋ ๊ฐ์ฅ์๋ฆฌ๋ฅผ ์ ๋จํ ํ ํ์ฑ๋ ์ธ ๊ฐ์ ๊ฐ๋ณ ํธ๋ฆฌ์ ์ต๋ XOR ๊ฐ๊ณผ ์ต์ XOR ๊ฐ ๊ฐ์ ์ฐจ์ด๋ฅผ ์ต์ํํ๋ ๊ฒ์
๋๋ค. ๋ฌด์ฐจ๋ณ ๋์
์ ๊ทผ ๋ฐฉ์์ ๊ฐ๋ฅํ ๋ชจ๋ ๊ฐ์ฅ์๋ฆฌ ์์ ์๋ํ๋ ๊ฒ์ด์ง๋ง ์๊ฐ ๋ณต์ก๋๋ O(nยณ)์
๋๋ค. ๋ณด๋ค ์ต์ ํ๋ ์ ๋ต์ ์ธ์ ์ฑ ๋ชฉ๋ก์ ์ฌ์ฉํ์ฌ ํธ๋ฆฌ๋ฅผ ๊ตฌ์ถํ๊ณ ๋ฃจํธ์์ ๊น์ด ์ฐ์ ๊ฒ์(DFS)์ ์ํํ์ฌ ๋ชจ๋ ๋
ธ๋์ ๋ํ ํ์ ํธ๋ฆฌ XOR์ ๊ณ์ฐํ๊ณ ๊ฐ ๋
ธ๋์ ํ์ ํธ๋ฆฌ์ ์ํ๋ ๋
ธ๋๋ฅผ ์ถ์ ํ๋ ๊ฒ์
๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋ชจ๋ ๋
ธ๋ ์์ ๋ฐ๋ณตํ๊ณ ์ธ ๊ฐ์ XOR ๋ถ๋ถ์ ๊ณ์ฐํ๊ณ ์ ์๋ฅผ ํ๊ฐํฉ๋๋ค. ๋ฐ๊ฒฌ๋ ์ต์ ์ ์๊ฐ ๋ฐํ๋ฉ๋๋ค. Python์ ์ฝ๋ ๊ตฌํ์ defaultdict๋ฅผ ์ฌ์ฉํ์ฌ ๊ทธ๋ํ๋ฅผ ์์ฑํ๊ณ DFS ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ํ์ ํธ๋ฆฌ XOR ๋ฐ ํ์ ํญ๋ชฉ์ ๊ณ์ฐํฉ๋๋ค. ํด์ ์๊ฐ ๋ฐ ๊ณต๊ฐ ๋ณต์ก๋๋ O(nยฒ)์
๋๋ค. ์ด ๋ฌธ์ ์์ ์ป์ ์ ์๋ ์ฃผ์ ๋ด์ฉ์ XOR ๋ฐ ํธ๋ฆฌ DP์ ์ฌ์ฉ๊ณผ ๋ฌธ์ ์๊ตฌ ์ฌํญ์ ์ดํดํ๋ ๊ฒ์ ์ค์์ฑ์
๋๋ค. ์ ์๋ ๋์์ ํ์๋ก ํ๊ณ ์ฒ์์๋ ํด๊ฒฐ์ฑ
์ ์์ ํ ์ดํดํ์ง ๋ชปํ์์ ์ธ์ ํ๋ฉด์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๊ฒฝํ์ ๋๋์๋ด
๋๋ค.
dev.to
๐ง Solving LeetCode Until I Become Top 1% โ Day `54`
Create attached notes ...
