์ ์ ๊ฐ๋ฐ์ ๊ธฐ์ ๋ฉด์ ์ค์ ๊ธฐ์ถ : ํด์
๋ฉด์ ๊ด : ํด์ ํ ์ด๋ธ์ ๋ํด์ ์ค๋ช ํด์ฃผ์๊ฒ ์ต๋๊น?
๋ : ํด์ ํ ์ด๋ธ์ ์ฐ๊ด๋ฐฐ์ด ๊ตฌ์กฐ๋ฅผ ์ด์ฉํ์ฌ Key์ Value๋ฅผ ์ ์ฅํ๋ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค.
๋ฉด์ ๊ด : ์ฐ๊ด๋ฐฐ์ด์ด ๋ญ๊ฐ์?
๋ : ์ฐ๊ด๋ฐฐ์ด์ ํค ํ๋์ ๊ฐ ํ๋๊ฐ ์ฐ๊ด๋์ด ์์ผ๋ฉฐ ํค๋ฅผ ํตํด ์ฐ๊ด๋๋ ๊ฐ์ ์์๋ผ ์ ์๋ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์๋ฏธํฉ๋๋ค.
๋ฉด์ ๊ด : ๊ณ์ ์ค๋ช ํด ๋ณด์ธ์.
๋ : ํด์๋ ๋ฆฌ์์ค๋ฅผ ํฌ๊ธฐํ๊ณ ์๋์ ์น์คํ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค. ํน์ ํค ์ ๋ ฅ์ ๋ฃ์ผ๋ฉด ํด์ ํจ์๋ฅผ ํตํด์ ํน์ ์ฐ์ฐ์ ํตํด ํน์ ๊ฐ์ผ๋ก ๋ณํ์์ผ ์ค๋๋ค.
๋ฉด์ ๊ด : ํน์ ์ฐ์ฐ์ ์๋ฅผ ๊ฐ๋จํ ๋ค์ด์ฃผ์ค๋์?
๋ : ์๋ฅผ ๋ค์ด์ ๋ค์ด์ค๋ Key๊ฐ์ ๋ชจ๋ 100์ผ๋ก ๋๋๋ ์ฐ์ฐ์ ํ๋ค๋ฉด 110, 120, 130 ์ด๋ ๊ฐ์ด ๋ค์ด์ฌ ๋ 10,20,30์ผ๋ก ๋ณํ์์ผ์ค๋๋ค.
๋ฉด์ ๊ด : ๋ฆฌ์์ค๋ฅผ ํฌ๊ธฐํ๊ณ ์๋์ ์น์คํ๋ค๊ณ ํ์ จ๋๋ฐ ๊ทธ ์๋ฏธ๊ฐ ๋ฌด์์ ๋๊น?
๋ : ์๊น์ ์๋ฅผ ๋ค์ ๋ค์ด์ ๋ชจ๋ Key๊ฐ์ 100์ผ๋ก ๋๋๋ ๊ฒฝ์ฐ 110, 210 ์ด ๋ค์ด์ค๋ฉด ๋ ๋ค 10์ด๋ผ๋ ๊ฐ์ ๊ฐ์ ๊ฐ์ง๊ฒ ๋๋๋ฐ ์ด ๋ ํด์ ์ถฉ๋์ด ์ผ์ด๋ฌ๋ค๊ณ ํฉ๋๋ค. ํด์ ์ถฉ๋์ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ ์ค ํ๋๋ linked list ๋ฅผ ์ด์ฉํด์ ์ด๋ฏธ ํค์ ํด๋นํ๋ ๊ฐ์ด ์๋ ๊ฒฝ์ฐ linked list ์ ํค, ๊ฐ ์์ ์ฐ๊ฒฐํด ๋ฃ์ด์ฃผ๋ ๋ฐฉ์์ ๋๋ค. ์ด๋ ๊ฒ ๋๋ฉด ํ ์ด๋ธ์ ์ด์ฉํ๋ ค๊ณ ๋ง๋ ๊ตฌ์กฐ๊ฐ ๋ฆฌ์คํธ๋ก ๊ณ์ ์ด์ด์ง๊ธฐ๋ง ํด์ ๋ฆฌ์์ค๋ฅผ ๋ง์ด ์๋ชจํ๊ฒ ๋ฉ๋๋ค.
๋ฉด์ ๊ด : ๋ ๋ค๋ฅธ ํด์ ์ถฉ๋ ํด๊ฒฐ ๋ฒ์ด ์์๊น์?
๋ : Linear Probing (์ ํ ํ์ฌ) ์ด๋ ๋ฐฉ๋ฒ์ ์ด์ฉํฉ๋๋ค. ์ด ๋ฐฉ๋ฒ์ ํด๋น ์ธ๋ฑ์ค์ ์ด๋ฏธ ๊ฐ์ด ์๋ ๊ฒฝ์ฐ ์๋ฆฌ๊ฐ ๋น ์ธ๋ฑ์ค๋ฅผ ์ฐพ์์ ๊ฐ์ ๋ฃ์ด๋๋ ๋ฐฉ์์ ๋๋ค. ๊ทธ๋ฌ๋ค๊ฐ ๋ ์ด์ Linear Probing ์ ํ ์๋ฆฌ๊ฐ ์๋ ๊ฒฝ์ฐ์ table resizing ์ ํตํด์ ํ ์ด๋ธ์ ํฌ๊ธฐ๋ฅผ ๋๋ฆฐ ํ, ๊ธฐ์กด์ ๋ฐ์ดํฐ๋ฅผ ๋ค์ ํด์ ํจ์์ ๋ฃ์ด์ ์ฌ์ ๋ ฌ์ ํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
๋ฉด์ ๊ด : ํด์์ ์๊ฐ๋ณต์ก๋๋ ์ด๋ป๊ฒ ๋ ๊น์?
๋ : ํด์ ์ถฉ๋์ด ์ผ์ด๋์ง ์๋๋ค๋ฉด O(1) ์ ์์์๊ฐ ์ ๊ทผ ์๊ฐ์ ๊ฐ์ง๋๋ค. ํด์ ์ถฉ๋์ด ๋ฐ์ํ๋ฉด ๋ฒ์ผ ์์ ๋ชจ๋ ๊ฐ๋ค์ ์กฐ์ฌํด์ผ ํ๋ฏ๋ก O(N)์ ์ ๊ทผ ์๊ฐ์ ๊ฐ์ง๋๋ค.