Data Structure(์๋ฃ ๊ตฌ์กฐ) ๐Part.2 Set,dictionary(HashTable)
โ๏ธData Structure์ ๊ฐ๋
ํ์์ฑ, ๊ทธ๋ฆฌ๊ณ ๋ค์ํ ์ข
๋ฅ์ ์๋ฃ๊ตฌ์กฐ์ ๋ํด ์ดํดํ๋ค.
โ๏ธSet์ ๊ฐ๋
๊ณผ ์ฅ์ , ๋จ์ , ๊ทธ๋ฆฌ๊ณ ์ธ์ ์ฌ์ฉํ๋ฉด ์ข์์ง ์ดํดํ๋ค.
โ๏ธDictionary์ ๊ฐ๋
๊ณผ ์์ฑ๋ฐฉ๋ฒ ๊ทธ๋ฆฌ๊ณ ์ด๋ป๊ฒ ์ ๊ทผํ๋์ง ์ดํดํ๋ค.
1. Set
๋น ์์ฐจ์ ์ผ๋ก ์ ์ฅํ๋ ๊ฐ์ฒด
MDN ๊ณต์๋ฌธ์ Set ์ค๋ช
- Array ์ ๋น์ทํ์ง๋ง ์ค๋ณต ๊ฐ์ ํ์ฉํ์ง ์๋๋ค.
- ๋น ์์ฐจ์ ์ผ๋ก ๊ฐ์ ์ ์ฅํ๊ธฐ ๋๋ฌธ์, ์์๊ฐ ์์ผ๋ฏ๋ก indexing๋ ์๋ค
- ํด์ฌ ๊ฐ ๊ธฐ๋ฐ์ผ๋ก bucket์ ์ ์ฅํ๊ธฐ ๋๋ฌธ์ ์ค๋ณต๋ ๊ฐ์ ์ ์ฅํ ์ ์๋ค.
- ํน์ ๊ฐ์ ํฌํจํ๋์ง ์์๋ณด๋ lookup์ ์ฉ์ดํ๋ค.
2. Dictionary/Hash Table
key-valueํํ๋ก ์ ์ฅํ ์ ์๋ ์๋ฃ ๊ตฌ์กฐ
- key ๊ฐ์ด ์ค๋ณต๋์ง ์์ผ๋ฉฐ, set์ ๋ง์ฐฌ๊ฐ์ง๊ณ ํน์ ์์๋๋ก ๋ฐ์ดํฐ๋ฅผ ๋ฆฌํดํ์ง ์๋๋ค.
- set๊ณผ ๋น์ทํ๊ฒ ํด์๊ฐ์ ๊ตฌํ๋ค ํด์๊ฐ์ bucket์ ๊ฐ์ ์ ์ฅํ๊ธฐ ๋๋ฌธ์, ์์๊ฐ ์๊ณ ์ค๋ถ๋์ง ์์ key๊ฐ์ ํ์ฉ์ด ๊ฐ๋ฅํ ๊ฒ ์ด๋ค.
When To Use Dictionary
๋ง์น ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฒ๋ผ ํค์ ๊ฐ์ ๋ฌถ์ด์ ๋ฐ์ดํฐ๋ฅผ ํํํด์ผ ํ ๋ ์ ์ฉํ๋ค. ์ค์ ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ ์ฝ์ด๋ค์ธ ๊ฐ์ dictionary๋ก ๋ณํํด์ ์ฌ์ฉ ์์ฃผ ํจ.