๐Ÿ““ STUDY/FASTCAMPUS

ํŒจ์ŠคํŠธ์บ ํผ์Šค ์ฑŒ๋ฆฐ์ง€ 30์ผ์ฐจ

JuneBee 2021. 11. 30. 20:31
728x90
๋ฐ˜์‘ํ˜•

์‹œ์ฒญ ๊ฐ•์˜ : Ch 09. ์ž๋ฃŒ๊ตฌ์กฐ(ํ•ด์‰ฌ) - 01. ๋ธ”๋ก์ฒด์ธ์—๋„ ์“ฐ์ด๋Š” ํ•ด์‰ฌ ํ…Œ์ด๋ธ” 1

์‹œ์ฒญ ๋‚ ์งœ : 11/30/2021

ํ•ด์‰ฌ ํ…Œ์ด๋ธ” (Hash Table)

  1. ํ•ด์‰ฌ ํ…Œ์ด๋ธ”
  • key์— ๋ฐ์ดํ„ฐ(value)๋ฅผ ๋งคํ•‘ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ
  • ํ•ด์‰ฌ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด, ๋ฐฐ์—ด์— ํ‚ค์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์ฃผ์†Œ(index number)๋ฅผ ๊ณ„์‚ฐ
  • key๋ฅผ ํ†ตํ•ด ๋ฐ”๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜์–ด์žˆ๋Š” ์ฃผ์†Œ๋ฅผ ์•Œ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ์ €์žฅ ๋ฐ ํƒ์ƒ‰ ์†๋„๊ฐ€ ํš๊ธฐ์ ์œผ๋กœ ๋นจ๋ผ์ง
  • ๋ฏธ๋ฆฌ ํ•ด์‰ฌ ํ•จ์ˆ˜๊ฐ€ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ์ฃผ์†Œ (์ธ๋ฑ์Šค ๋ฒˆํ˜ธ) ์— ๋Œ€ํ•œ ๊ณต๊ฐ„์„ ๋ฐฐ์—ด๋กœ ํ• ๋‹นํ•œ ํ›„, ํ‚ค์— ๋”ฐ๋ฅธ ๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐ ํƒ์ƒ‰ ์ง€์›

์šฉ์–ด

  1. ํ•ด์‰ฌ ํ•จ์ˆ˜ (Hash Function) : ์ž„์˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณ ์ •๋œ ๊ธธ์ด์˜ ๊ฐ’์œผ๋กœ ๋ฆฌํ„ดํ•ด์ฃผ๋Š” ํ•จ์ˆ˜
  • Hash Adress : ํ•ด์Ё ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋ฆฌํ„ด๋œ ๊ณ ์ •๋œ ๊ธธ์ด์˜ ๊ฐ’
  1. ํ•ด์‰ฌ ํ…Œ์ด๋ธ” (Hash Table) : ํ‚ค ๊ฐ’์˜ ์—ฐ์‚ฐ์— ์˜ํ•ด ์ง์ ‘ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ
  • slot : ํ•ด์‰ฌ ํ…Œ์ด๋ธ”์—์„œ ํ•œ ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„

์ด๋ฏธ์ง€ ์ถœ์ฒ˜ : ์œ„ํ‚คํ”ผ๋””์•„

์œ„ ๊ทธ๋ฆผ์—์„œ, hash function์€ ํ‚ค๊ฐ€ ์ €์žฅ๋œ ์ฃผ์†Œ๋กœ refer ํ•ด์ฃผ๊ณ , buckets ์€ ํ•ด์‰ฌ ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋ผ๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.

Hash Table Class ์ƒ์„ฑ

public class MyHash{
    public Slot[] hashTable;
    public MyHash(Integer size){
        this.hashTable = new Slot[size];
    }
    public class Slot{
        String value;
        Slot(String value){
        this.value = value;
        }
    }
   /*Hash Function ์ถ”๊ฐ€*/
   public int hashFunction(String key){
   return (int)(key.charAt(0)%this.hashTable.length; //์ฃผ์†Œ๋ฅผ ํ™•๋ณดํ•œ๋‹ค
   }
}

ํ•ด์‰ฌ ํ…Œ์ด๋ธ”์˜ ์žฅ๋‹จ์ ๊ณผ ์ฃผ์š” ์šฉ๋„

1. ์žฅ์ 

  • ๋ฐ์ดํ„ฐ ์ €์žฅ/์ฝ๊ธฐ/๊ฒ€์ƒ‰ ์†๋„๊ฐ€ ๋น ๋ฆ„
  • ์ค‘๋ณต ํ™•์ธ ์‰ฌ์›€

2. ๋‹จ์ 

  • ์ €์žฅ ๊ณต๊ฐ„์ด ์ข€ ๋” ๋งŽ์ด ํ•„์š”ํ•จ
  • ์—ฌ๋Ÿฌ ํ‚ค์— ํ•ด๋‹นํ•˜๋Š” ์ฃผ์†Œ๊ฐ€ ๋™์ผํ•  ๊ฒฝ์šฐ ์ถฉ๋Œ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋ณ„๋„ ์ž๋ฃŒ๊ตฌ์กฐ๊ฐ€ ํ•„์š”ํ•จ

3. ์ฃผ์š” ์šฉ๋„

  • ๊ฒ€์ƒ‰์ด ๋งŽ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ
  • ์ €์žฅ, ์‚ญ์ œ, ์ฝ๊ธฐ๊ฐ€ ๋นˆ๋ฒˆํ•œ ๊ฒฝ์šฐ
  • ์บ์‰ฌ ๊ตฌํ˜„์‹œ(์ค‘๋ณต ํ™•์ธ์ด ์‰ฝ๊ธฐ ๋•Œ๋ฌธ)
  • ์Šค๋„์ฟ  ๋“ฑ ๋ฌธ์ œ ํ’€๋•Œ ์œ ์šฉ (์ค‘๋ณต ํ™•์ธ )

ํŒจ์ŠคํŠธ์บ ํผ์Šค ํ™˜๊ธ‰ ์ฑŒ๋ฆฐ์ง€ ๋ฐ”๋กœ๊ฐ€๊ธฐ๐Ÿ‘‰ https://bit.ly/3FVdhDa

 

์ˆ˜๊ฐ•๋ฃŒ 100% ํ™˜๊ธ‰ ์ฑŒ๋ฆฐ์ง€ | ํŒจ์ŠคํŠธ์บ ํผ์Šค

๋”ฑ 5์ผ๊ฐ„ ์ง„ํ–‰๋˜๋Š” ํ™˜๊ธ‰์ฑŒ๋ฆฐ์ง€๋กœ ์ˆ˜๊ฐ•๋ฃŒ 100% ํ™˜๊ธ‰๋ฐ›์œผ์„ธ์š”! ๋” ๋Šฆ๊ธฐ์ „์— ์ž๊ธฐ๊ณ„๋ฐœ ๋ง‰์ฐจ ํƒ‘์Šน!

fastcampus.co.kr

๋ณธ ํฌ์ŠคํŒ…์€ ํŒจ์ŠคํŠธ์บ ํผ์Šค ํ™˜๊ธ‰ ์ฑŒ๋ฆฐ์ง€ ์ฐธ์—ฌ๋ฅผ ์œ„ํ•ด ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค

728x90
๋ฐ˜์‘ํ˜•