728x90 ๋ฐ์ํ ํด์ฌ ํ ์ด๋ธ2 [Data Structure] ํด์ฌ ํ ์ด๋ธ(Hash Table) ๊ตฌํํด๋ณด๊ธฐ(feat. Swift) ์๋ ํ์ธ์ Foma ๐ป ์ ๋๋ค! ์ค๋์ ์ ๋ฒ ๊ธ์์ ํด์ฌ ํ ์ด๋ธ์ ์ด๋ก ์ ์ด์ด์ ์ง์ ๊ตฌํํด ๋ณด๋ ค๊ณ ํฉ๋๋ค! (ํน์ ์ ๋ฒ ๊ธ์ ์๋ณด์ จ๋ค๋ฉด ์ฌ๊ธฐ ๋ฅผ ํตํด์ ๋ณด๊ณ ์์ฃผ์ธ์~) ๋ฐ๋ก ์์ํ ๊ฒ์~ HashTable ๋จผ์ ์ ๋ ํด์ฌ ํจ์๋ฅผ Digit Folding ์๊ณ ๋ฆฌ์ฆ์ ์ด์ฉํด์ ๋ง๋ค ๊ฒ์ด๊ธฐ ๋๋ฌธ์ key๊ฐ์ String์ผ๋ก ์ค์ ํ์ต๋๋ค. ๋ํ ์ถฉ๋์ด ๋ฌ์ ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ๋ก Chaining ๊ธฐ๋ฒ์ ์ฌ์ฉํ์์ง๋ง ์ฐ๊ฒฐ ๋ฆฌ์คํธ ๋์ ๋ฐฐ์ด์ ์ฌ์ฉํ์ต๋๋ค. ์๋์ ๊ฐ์ด typealias๋ก ๋ณ์นญ์ ์ค์ ํด์ฃผ๊ณ ๋ฒํท์ ์ด์ค๋ฐฐ์ด๋ก ์ ์ธํ์ต๋๋ค. public struct HashTable { public typealias Key = String private typealias Element = (key:Key,value:Val.. 2021. 11. 16. [Data Structure] ํด์ฌ ํ ์ด๋ธ(Hash Table)์ด๋? (feat. ์ด๋ก ) ์๋ ํ์ธ์ Foma ๐ป ์ ๋๋ค! ์ค๋์ ์ฐ๋ฆฌ๊ฐ ์์ฃผ ํํ๊ฒ ์ฌ์ฉํ๊ณ ์๋ ํด์ฌ ํ ์ด๋ธ, Swift๋ก ๋งํ๋ฉด ๋์ ๋๋ฆฌ์ ๋ํด์ ์์๋ณผ ๊ฑฐ์์! ์ด๋ฏธ ๊ตฌํ๋์ด ์๋ ์ฝ๋๋ก ์ฝ๊ฒ ์ฌ์ฉํ๋๋ฐ ์ง์ ๊ตฌํํ๋ ค๊ณ ํ๋ ์ง์ง ๋ณต์กํ๋๋ผ๊ตฌ์. ๊ทธ๋์ ์ค๋์ ํด์ฌ ํ ์ด๋ธ์ ๋ํด์ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํฉ๋๋ค! ๋ฐ๋ก ์์ํ ๊ฒ์~ ํด์ฌ ํ ์ด๋ธ(Hash Table)์ด๋? ์ ์๋ ์๋์ ๊ฐ์ต๋๋ค. ํด์ ํ ์ด๋ธ์ ์ปดํจํ ์์ ํค๋ฅผ ๊ฐ์ ๋งคํํ ์ ์๋ ๊ตฌ์กฐ์ธ, ์ฐ๊ด ๋ฐฐ์ด ์ถ๊ฐ์ ์ฌ์ฉ๋๋ ์๋ฃ ๊ตฌ์กฐ์ด๋ค. ํด์ ํ ์ด๋ธ์ ํด์ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์์ธ(index)์ ๋ฒํท(bucket)์ด๋ ์ฌ๋กฏ(slot)์ ๋ฐฐ์ด๋ก ๊ณ์ฐํ๋ค. - ์ํค ๋ฐฑ๊ณผ - ์ฆ, key์ value๋ฅผ ์ฌ์ฉํด์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค. key๊ฐ์ผ๋ก value๋ฅผ ํ ๋ฒ์ ์ฐพ์ .. 2021. 11. 15. ์ด์ 1 ๋ค์ 728x90 ๋ฐ์ํ