๋ด์ผ ์๋น๊ตฐ์ด๋ผ์ ์ข ์ผ์ฐ ์๋๋ผ TIL๋ฅผ ๋ฏธ๋ค๋ค ใ
ใ
๋ฆ๊ฒ๋๋ง ๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํด์ ์ฌ๋ฆฌ๋ ค๊ณ ํ๋ค.
ํ, ํด์ ํ
์ด๋ธ, ๊ทธ๋ํ์ ๋ํด์ ๋ฐฐ์ ๋๋ฐ ํ์ ํด์ ํ
์ด๋ธ์ ํด๋น ์๋ฃ๊ตฌ์กฐ๋ฅผ ํ์ฉํ ์ฝ๋ฉํ
์คํธ ๋ฌธ์ ๋ฅผ ํ์ด๋ณด๋ ์ค์ต์ ๊ฐ์ก๋ค.
์ด๋ก ๋ง ๋ฐฐ์ฐ๊ธฐ๋ณด๋ค๋ ์ง์ ๊ตฌํ์ ํด๋ณด๋ฉด์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด๋ณด๋ ํจ์ฌ ์ ๋ค๊ฐ์๋ค.
๊ณต๋ถํ ๋ด์ฉ ์ค ์์ด ๋ง์ ๊ฒ์ ๋ค๋ฅธ ๊ธ๋ก ์ ๋ฆฌํด์ ๋งํฌ๋ฅผ ๋ฌ์๋ค.
- ๊ทธ๋ํ (Graph)
๊ทธ๋ํ์ ๋ํด์๋ ๊ฐ๋ณ๊ฒ๋ง ์๊ณ ์์๊ธฐ์ ์๋ก ๋ฐฐ์ด ๊ฒ์ด๋ ๋ค๋ฆ ์์๋ค. ๊ทธ๋ํ์๋ ๋ฐฉํฅ์ ๊ฐ์ง๋์ง, ๊ฐ์ ๋ค์ด ๋ชจ๋ ์ฐ๊ฒฐ๋์ด ์๋์ง ์ฌ๋ถ์ ๋ฐ๋ผ ์ข ๋ฅ๊ฐ ๋๋์๋ค. ๊ทธ๋ํ๋ฅผ ํ์ฉํ ๋๋ ๊ทธ๋ํ ๋ด์ ๋ฌดํ๋ฃจํ์ธ ์ฌ์ดํด์ด ์กด์ฌํ๋์ง ์ ์ฒดํฌํด์ผ ํ๋ค๋ ์ ์ด ์ค์ํ๋ค. ๋์ค์ DFS, BFS ์๊ณ ๋ฆฌ์ฆ์ ์ ์ฉํ ๋ ํ์์ ์ผ๋ก ์ฌ์ฉ๋๋ ์๋ฃ๊ตฌ์กฐ์๋ค.
- ํ (Queue)
ํ ์๋ฃ๊ตฌ์กฐ์ ๋ํด์๋ ๋ฐฐ์ด๋ก ๊ตฌํํด์ ์์ฃผ ์ฌ์ฉํ์์ง๋ง class ํํ๋ก ๊ตฌํํ๋ ๋ฒ์ ์๋ก ๋ฐฐ์ ๋ค.
๊ฐ์ฌ๋์ด shift๋ก ๊ตฌํํ๋ ๊ฒ์ O(n) ์๊ฐ ๋ณต์ก๋๊ฐ ์์๋๋ ๋นํจ์จ์ ์ธ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ํ์ จ๋๋ฐ ๋ ์ด ๋๊น์ง shift๋ก๋ง ๊ตฌํ์ ํ์๊ธฐ์ ๋ค์๊ธ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ณ ๋ คํ๋ ๊ฒ์ ์ค์์ ์๊ฐํ๊ฒ ๋๋ ๊ณ๊ธฐ๊ฐ ๋์๋ค.
์ํ ํ์ ๋ํด์๋ ๊ตฌํํด๋ณด์๋๋ฐ ์ต๋ ์ฌ์ด์ฆ๋ฅผ ์ง์ ํด์ค์ผ ํ๋ค๋ ์ ๊ณผ Front์ Rear ์ธ๋ฑ์ค๋ฅผ ์ต๋ ์ฌ์ด์ฆ ๋ฐ์ ๋ฒ์ด๋๋ฉด ์ฌ์ง์ ํ๋ ๋ก์ง์ ์ ์ ์์๋ค.- ํด์ ํ ์ด๋ธ (Hash Table)
ํด์ ํ ์ด๋ธ์ ๊ธฐ์กด์๋ Object๋ก๋ง ๊ตฌํ์ ํ์๋ค. ํ์ง๋ง Map ๊ฐ์ฒด์ Set ๊ฐ์ฒด๋ก ๊ตฌํํ๋ ๋ฒ์ ๋ฐฐ์ ๋ค. ํนํ Map ๊ฐ์ฒด๋ ํด์ ํ ์ด๋ธ์ ๋ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋๋ก ๊ฐ์ข ๋ฉ์๋์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์์ด์ ํธ๋ฆฌํ๋ค. ๊ด๋ จ ์ฝ๋ฉํ ์คํธ ๋ฌธ์ ์ค์ต์๋ ์์ฃผ ์ ์ฉํ๋ค.
- ๋ณธ๊ฒฉ์ ์ผ๋ก ์ฝ๋ฉํ ์คํธ์ ์์ฃผ ๋์ค๋ ์ ํ์ ์๋ฃ๊ตฌ์กฐ๋ค์ ํ์ตํ๋ค.
์๋ฃ๊ตฌ์กฐ๋ฅผ ํ์คํ๊ฒ ์๊ณ ์์ด์ผ ํจ์จ์ ์ผ๋ก ์ฝ๋ฉํ ์คํธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๊ณ ์ถํ์ ์๋น์ค๋ฅผ ๊ฐ๋ฐํ ๋๋ ์์ฉ๋๋ ๋น์ฉ๊ณผ ์๊ฐ์ ์ค์ผ ์ ์๋ค. ๋ฐ๋์ ๋ฅ์ํ๊ฒ ์ฌ์ฉํ ์ ์์ ๋๊น์ง ๊ด๋ จ ์ฝ๋ฉํ ์คํธ ๋ฌธ์ ๋ฅผ ํ๋ฉด์ ์ตํ์ผ๊ฒ ๋ค.
๐ ํด๋น ๋ด์ฉ์ ๊ณต๋ถํ๋ฉด์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. ํ๋ฆฐ ๋ถ๋ถ์ด๋ ์คํดํ๊ณ ์๋ ๋ถ๋ถ์ด ์๋ค๋ฉด ํผ๋๋ฐฑ ๋ถํ๋๋ฆฝ๋๋ค.