๐ STUDY/FASTCAMPUS
ํจ์คํธ์บ ํผ์ค ์ฑ๋ฆฐ์ง 30์ผ์ฐจ
JuneBee
2021. 11. 30. 20:31
728x90
๋ฐ์ํ

์์ฒญ ๊ฐ์ : Ch 09. ์๋ฃ๊ตฌ์กฐ(ํด์ฌ) - 01. ๋ธ๋ก์ฒด์ธ์๋ ์ฐ์ด๋ ํด์ฌ ํ ์ด๋ธ 1
์์ฒญ ๋ ์ง : 11/30/2021
ํด์ฌ ํ ์ด๋ธ (Hash Table)
- ํด์ฌ ํ ์ด๋ธ
- key์ ๋ฐ์ดํฐ(value)๋ฅผ ๋งคํํ ์ ์๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ
- ํด์ฌ ํจ์๋ฅผ ํตํด, ๋ฐฐ์ด์ ํค์ ๋ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ ์ฃผ์(index number)๋ฅผ ๊ณ์ฐ
- key๋ฅผ ํตํด ๋ฐ๋ก ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋์ด์๋ ์ฃผ์๋ฅผ ์ ์ ์์ผ๋ฏ๋ก, ์ ์ฅ ๋ฐ ํ์ ์๋๊ฐ ํ๊ธฐ์ ์ผ๋ก ๋นจ๋ผ์ง
- ๋ฏธ๋ฆฌ ํด์ฌ ํจ์๊ฐ ์์ฑํ ์ ์๋ ์ฃผ์ (์ธ๋ฑ์ค ๋ฒํธ) ์ ๋ํ ๊ณต๊ฐ์ ๋ฐฐ์ด๋ก ํ ๋นํ ํ, ํค์ ๋ฐ๋ฅธ ๋ฐ์ดํฐ ์ ์ฅ ๋ฐ ํ์ ์ง์
์ฉ์ด
- ํด์ฌ ํจ์ (Hash Function) : ์์์ ๋ฐ์ดํฐ๋ฅผ ๊ณ ์ ๋ ๊ธธ์ด์ ๊ฐ์ผ๋ก ๋ฆฌํดํด์ฃผ๋ ํจ์
- Hash Adress : ํด์ ํจ์๋ฅผ ํตํด ๋ฆฌํด๋ ๊ณ ์ ๋ ๊ธธ์ด์ ๊ฐ
- ํด์ฌ ํ ์ด๋ธ (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
๋ฐ์ํ