Hash Algorithm

๊ฐ•์ง€์˜ยท2023๋…„ 3์›” 3์ผ
0

์•Œ๊ณ ๋ฆฌ์ฆ˜

๋ชฉ๋ก ๋ณด๊ธฐ
2/2

๐Ÿ“š Hash

Key : Value ํ˜•ํƒœ๋ฅผ ๊ฐ€์ง„ ์ž๋ฃŒ๊ตฌ์กฐ

ํ•ด์‹œ๋Š” ์ „ํ™”๋ฒˆํ˜ธ๋ถ€์™€ ๋น„์Šทํ•˜๋‹ค!

์ด๋ฆ„(Key) ๊ฒ€์ƒ‰ โ†’ ์ „ํ™”๋ฒˆํ˜ธ(Value) ๋‚˜์˜ด!

์ฆ‰, ๋ฌด์–ธ๊ฐ€๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•œ ๊ฒ€์ƒ‰์–ด = Key | ๊ฒ€์ƒ‰์–ด๋กœ ๋‚˜์˜จ ๊ฒฐ๊ณผ = Value

๐Ÿ’ก ๋งŒ์•ฝ Hash๊ฐ€ ์—†๋‹ค๋ฉด?
์šฐ๋ฆฌ๊ฐ€ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ธ ๋ฐฐ์—ด์€ ์˜ค์ง ์ •์ˆ˜๋กœ๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ
๊ทธ๋ ‡๊ธฐ์— ์ด๋ฆ„์„ ์•ˆ๋‹ค๊ณ  ํ•ด์„œ ์ด๋ฆ„์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ „ํ™”๋ฒˆํ˜ธ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค
for( int i = 0; i < n; i++ )์„ ํ†ตํ•ด 0๋ถ€ํ„ฐ ํ•˜๋‚˜ ํ•˜๋‚˜ ๋‹ค ์—ด์–ด๋ณด๋ฉด์„œ
phonebookName[i] == name ์œผ๋กœ ์ฐพ๋Š” ์ด๋ฆ„์ด ๋งž๋Š” ์ง€ ํ™•์ธํ•˜๋ฉด์„œ ๋น„๊ตํ•ด์•ผ ํ•จ !

ํ•ด์‹œ๋Š” ๋ฐฐ์—ด๊ณผ ๋‹ฌ๋ฆฌ String ํƒ€์ž…์ด๋‚˜ ๋‹ค๋ฅธ ์–ด๋–ค ๋ฐ์ดํ„ฐํ˜•์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ ‘๊ทผํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌ ๊ฐ€๋Šฅ

๐Ÿ“Œ Hash ํŠน์ง•

  • ๋ชจ๋“  ๋ฐ์ดํ„ฐ ํƒ€์ž…์œผ๋กœ ์ ‘๊ทผ ๊ฐ€๋Šฅ
  • ๋ฐ์ดํ„ฐ์˜ ์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•˜์ง€ ์•Š์Œ
  • ๋‚ด๋ถ€์ ์œผ๋กœ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ๋•Œ ๋™๊ธฐํ™”๋ฅผ ๋ณด์žฅํ•˜์ง€ ์•Š์Œ
  • null Key์™€ null Value ๋ชจ๋‘ ํ—ˆ์šฉ
  • ์ค‘๋ณต๋œ Key๊ฐ’์„ ํ—ˆ์šฉํ•˜์ง„ ์•Š์ง€๋งŒ ์ค‘๋ณต๋œ ๊ฐ’์€ ๊ฐ–์„ ์ˆ˜ ์žˆ์Œ

0๊ฐœ์˜ ๋Œ“๊ธ€