โ ๋ฃจํธ ๋
ธ๋ -> ์ผ์ชฝ ์์ ๋
ธ๋ -> ์ค๋ฅธ์ชฝ ์์ ์์
โ ์ผ์ชฝ ์์ -> ๋ฃจํธ ๋
ธ๋ -> ์ค๋ฅธ์ชฝ ์์ ์์
โ ๋ฃจํธ ๋
ธ๋ -> ์ผ์ชฝ ์์ ๋
ธ๋ -> ์ค๋ฅธ์ชฝ ์์ ์์
โ ๊ฐ๊น์ด ์ ๋ถํฐ ๋ชจ๋ ํ์ ํ, ๊ทธ ๋ค์์ผ๋ก ๊ฐ๊น์ด ์ ํ์
โ ๋ ์ ์ ์ฌ์ด์ ์ต๋จ ๊ฒฝ๋ก๋ฅผ ์ฐพ์ ๋ ์ฌ์ฉ
โ ๊ฒ์ ๋์์ ๊ท๋ชจ๊ฐ ํฌ์ง ์๊ณ , ๊ฒ์ ์์ ์ง์ ์ผ๋ก๋ถํฐ ์ํ๋ ๋์์ด ๋ณ๋ก ๋ฉ์ง ์๋ค๋ฉด ์ฌ์ฉ
Ex. ์ต๋จ๊ฑฐ๋ฆฌ ์ฐพ์ ๋
โ ๊ฒ์ ์๋ ์์ฒด๋ DFS์ ๋นํด ๋ ๋น ๋ฆ
โ ๋ณดํต Queue๋ฅผ ์ด์ฉํด ๋ฌธ์ ํ
โ ํ๋์ ๊ฒฝ๋ก๋ฅผ ๋๊น์ง ํ์ ํ, ๋ค์ ๊ฒฝ๋ก๋ก ๋์ด๊ฐ ํ์
โ ๊ฒ์ ๋์ ๊ทธ๋ํ๊ฐ ์ ๋ง ํฌ๋ค๋ฉด ์ฌ์ฉ
โ ๊ฐ๊ฐ์ ๊ฒฝ๋ก๋ง๋ค ํน์ง์ ์ ์ฅํด๋ฌ์ผ ํ ๋, ์ค๊ฐ์ ์ฅ์ ๋ฌผ์ด ์์ ๋ ์ฌ์ฉ (BFS๋ ๊ฒฝ๋ก์ ํน์ง์ ๊ฐ์ง์ง ๋ชปํจ)
โ ๋ณดํต Stack์ด๋ ์ฌ๊ท๋ฅผ ์ด์ฉํด ๋ฌธ์ ํ
(Stack์ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๊ฐ ์์ฌ์์ ๋ ๋งํ๋ฉด ๊ทธ๊ฑฐ ์์ ๊ณ ๋ค๋ฅธ ๊ฒฝ๋ก ๋ค์ ์์)
(์ฌ๊ท์ ๊ฒฝ์ฐ ์ฅ์ ๋ฌผ์ ๋งํ๋ฉด ์ด์ ์ฌ๊ทํธ์ถ ์์ ์ผ๋ก ๋์๊ฐ์ ๊ฒฝ๋ก ์ฐพ์)
์๋ฐฉํฅ์ผ๋ก ์ด๋ ค์๋ ๊ตฌ์กฐ
Queue์ ๋น์ทํ ๋ชจ์ต์ ๊ฐ์ง๊ณ ์๊ณ Stack๊ณผ Queue์ ํน์ง์ ๋ชจ๋ ๊ฐ์ง
โ ์ด๋ ์ชฝ์์๋ ๋ค์ด๊ฐ๊ณ ๋๊ฐ ์ ์์ !
( ์์์ In ํ์ ๋, ๊ฐ์ ๋ฐฉํฅ์ผ๋ก Out ํ๋ค๋ฉด Stack๊ณผ ๊ฐ์ ๊ตฌ์กฐ / ๋ค๋ฅธ ๋ฐฉํฅ์ผ๋ก Out ํ๋ค๋ฉด Queue์ ๊ฐ์ ๊ตฌ์กฐ ( Out ๋จผ์ ํ์ ๋๋ ๊ฐ์ ))
์๋ฐฉํฅ ๋์์ ๋ฐ์ดํฐ ์ถ๊ฐ, ์ญ์ ๊ฐ ์ฉ์ด
โ ์๋ฐฉํฅ ๋์ด ์๋ ์์์ ๋ฐ์ดํฐ๋ง ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ ํ๋ ๊ฑด ๋ถ๊ฐ๋ฅ
์ฐ์๋ ๊ณต๊ฐ ์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฐจ์ง
๋ฉ๋ชจ๋ฆฌ ์ค๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ผ๋ ค๋ฉด ๊ทธ ๋ค์ ๋ฐ์ดํฐ๋ค์ด ๋ชจ๋ ํ์นธ์ฉ ๋ค๋ก ์ด๋ํด์ผํจ
ํฉ์ด์ ธ ์๋ ๊ณต๊ฐ์ ๋ ธ๋๋ค์ ์ฐ๊ฒฐ (๋ชจ๋ ๋ ธ๋๊ฐ ์๋ก์ ์ฃผ์๊ฐ๋ค๋ก ์ฐ๊ฒฐ)
์ง์ ์ฃผ์๊ฐ์ ๊ฐ์ง๊ณ ์์ด์ผ ๋ค์ ๋
ธ๋๋ก ์ ๊ทผ ๊ฐ๋ฅ
โ ๋
ธ๋๊ฐ ์ฐพ์ผ๋ ค๋ฉด ์ ์ฒด ์ํํด์ผํจ
( ๋ฉ๋ชจ๋ฆฌ์ ํฉ์ด์ ธ ์๊ธฐ ๋๋ฌธ์ ์ฝ๊ฒ ์ ๊ทผ ๋ถ๊ฐ )
( ์ํ ์ ๊น์ง๋ ์ฒซ๋ฒ์งธ ๋
ธ๋์ธ head node์ ์ ๋ณด๋ง ์๊ณ , ์ ๋ถ ์ํํด์ผ ๋ง์ง๋ง ์์ ํ์ธ ๊ฐ๋ฅ )
๋ง์ง๋ง ๋ ธ๋๋ ๊ฐ๋ฆฌํฌ ๊ณณ์ด ์์ด null ๊ฐ๋ฆฌํด
๋
ธ๋์ ์ถ๊ฐ/์ญ์ ๊ฐ ๋น ๋ฅด๊ณ ์ฌ์
( ๋ฃ์ ์์น ์ ๋ค ๋
ธ๋์ ์ฃผ์๊ฐ์ ํด๋น ๋
ธ๋์ ์ฃผ์๊ฐ์ผ๋ก ๋ณ๊ฒจํ๊ธฐ๋ง ํด์ฃผ๋ฉด ๊ฐ๋ฅ )
ํด์ํจ์(hash function)๋ฅผ ์ฌ์ฉํ์ฌ ๋ณํํ ํด์(hash)๋ฅผ ์์ธ(index)์ผ๋ก ์ผ์ ํค(key)์ ๋ฐ์ดํฐ(value)๋ฅผ ์ ์ฅํ๋ ์๋ฃ๊ตฌ์กฐ
( ํ์ํ ๋ฐ์ดํฐ์ ํค(key)๋ฅผ ํด์ํจ์๋ฅผ ์ฌ์ฉํด ๋ณ๋์ ํด์(hash)๋ก ๋ฐ๊ฟ ์ฃผ๊ณ , ํด๋นํ๋ ๋ฐ์ดํฐ(value)๋ฅผ ํจ๊ป ์ ์ฅ )
๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ์์ ์ด ๋งค์ฐ ๋น ๋ฆ
ํด์ ์ถฉ๋ ๋ฐ์ ๊ฐ๋ฅ์ฑ ์์ / ๋ฐ์ดํฐ ์ ์ฅ ์ ๋ฏธ๋ฆฌ ๊ณต๊ฐ ๋ง๋ค์ด๋์ผ ํจ
โ ๊ณต๊ฐ ํจ์จ์ฑ ๋จ์ด์ง
ํด์ ํจ์๊ฐ ๋ณต์กํ ๊ฒฝ์ฐ ํด์๊ฐ ๋ง๋ค์ด๋ด๋ ๋ฐ ๋ง์ ์๊ฐ ์์
ํค(key)
โ ํด์ ํจ์์ ์ ๋ ฅ๊ฐ์ธ ๊ณ ์ ํ ๊ฐ ( ๋ค์ํ ๊ธธ์ด์ ๊ฐ์ด ๋ค์ด์ฌ ์ ์์ )
โ ํด์ ํจ์๋ฅผ ํตํด ๋ณํํ์ง ์์ ์ํ๋ก ์ ์ฅ์์ ์ ์ฅ์ด ๋๋ฉด ๋ค์ํ ๊ธธ์ด๋งํผ์ ์ ์ฅ์๋ฅผ ๊ตฌ์ฑํด ๋์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ํด์ ํจ์๋ก ๊ฐ์ ๋ฐ๊พธ์ด ์ ์ฅ
โ
ํด์ํจ์(hash Function)
โ ํค(key)๋ฅผ ํด์(hash)๋ก ๋ฐ๊ฟ์ฃผ๋ ์ญํ
โ ๋ค์ํ ๊ธธ์ด๋ฅผ ๊ฐ์ง๊ณ ์๋ ํค(key)๋ฅผ ์ผ์ ํ ๊ธธ์ด๋ฅผ ๊ฐ์ง๋ ํด์(hash)๋ก ๋ณ๊ฒฝํ์ฌ ์ ์ฅ์๋ฅผ ํจ์จ์ ์ผ๋ก ์ด์ํ ์ ์๋๋ก ๋์์ค
โ ํด์ ์ถฉ๋์ ์ผ์ผํค๋ ํ๋ฅ ์ ์ต๋ํ ์ค์ด๋ ๊ฒ์ด ์ค์
( ํด์ ์ถฉ๋(hash Collision) - ์๋ก ๋ค๋ฅธ ํค(key)๊ฐ ๊ฐ์ ํด์(hash)๊ฐ ๋๋ ๊ฒฝ์ฐ )
โ
ํด์(hash)
โ ํค(key)๋ฅผ ํด์ํจ์(hash function)๋ฅผ ์ฌ์ฉํ์ฌ ๋ง๋ค์ด์ง ๊ฒฐ๊ณผ๋ฌผ
โ ์ ์ฅ์์์ ๋ฐ์ดํฐ(value)์ ๋งค์นญ๋์ด ์ ์ฅ ๋ณํ๋ ๊ฐ์ ๋ฐฐ์ด์ ์์ธ(index)๊ณผ ๊ฐ์ด ์ฌ์ฉ
โ
๋ฐ์ดํฐ(value)
โ ์ ์ฅ์์ ์ต์ข ์ ์ผ๋ก ์ ์ฅ๋๋ ๊ฐ
โ ์์ธ(index)๊ณผ ๋งค์นญ๋์ด ์ ์ฅ
[์ฐธ๊ณ ] https://www.cs.usfca.edu/~galles/visualization/Algorithms.html
( ์๊ณ ๋ฆฌ์ฆ์ด ๋ฉ๋ชจ๋ฆฌ์ ์ด๋ป๊ฒ ์ ์ฅ๋๊ณ ์์ฑ๋๋์ง ๋์ผ๋ก ๋ณผ ์ ์๋ ์ฌ์ดํธ! )
์ฌ์ค ๊ฐ๋
์ ์ผ๋ก๋ ๊ด์ฐฎ๋ค ๋ฌธ์ ์ ์์ฉํ๊ธฐ ์ด๋ ค์ธ ๋ฟ!!
Section2๋๊ณ ๋์ ์ปจํ
์ธ ๊ฐ ๋ญ๊ฐ ๊ฐ๋
๋ง ์ค๋ช
์ด ๋์ด์๊ณ ์ด๋ป๊ฒ ์์ฉํ๋์ง๋ ๋์์์ง ์์์ ์ง์ ํ๋ํ๋ ๋ค ์ฐพ์๋ณด๋ฉฐ ํ์ต์ ํด์ผํ๋ ๊ฒ ๊ฐ๋คใ
๊ฐ๋
์ ๋นํด ๋ฌธ์ ๋์ด๋๊ฐ ๋๋ฌด ์ด๋ ต๋ค๊ตฌ์ฌใ
ใ
์ด๋ป๊ฒ ํธ๋์ง ๊ฐ์ ์ก์ผ๋ฉด ๊ด์ฐฎ์๋ฐ
๊ทธ๋ฐ ์์ ๋ค์ด ์์ผ๋ ๊ฐ์ ์ก๊ธฐ๊ฐ ์ฝ์ง ์๋ค,,
๊ทธ๋๋ ์ค๋์ ์ด์ ๋ณด๋ค ์ข ๋ ๋นจ๋ฆฌ ์ดํดํ๋ค! ๊ทธ๋๋ ๋ฌธ์ ๋ฅผ ํ ๋์ ๊ทธ๋ํ๋ฅผ ์ด๋ป๊ฒ ํ์ฉํ๋์ง์ ๋ํ ํฐ ํ์ ๊ฐ์ด ์กํ ๊ฒ ๊ฐ๋ค ใ
ใ