ํ ์ด๋ธ๊ณผ ํด์ฌ ๊ฐ๋
ํ ์ด๋ธ์ ์ฌ์ ๊ณผ ๊ฐ์ด ๋จ์ด๋ฅผ ํตํด ์๋ฏธ๋ฅผ ์ฐพ๋ ํ์์ ๋น์ทํ๋ค. ๋ด๊ฐ ๊ฐ์ง ๋จ์ด๋ฅผ ๊ฒ์ํด ์๋ฏธ๋ฅผ ์์ ์๋ฏ, ํ ์ด๋ธ ์๋ฃ๊ตฌ์กฐ๋ ๋ด๊ฐ ๊ฐ์ง ํค๋ฅผ ํ์ฉํด ๊ฐ์ ๋ฃ๊ณ ์ฐพ์ ์ ์๋ค.
“์ ์ฅ ๋๋ ๋ฐ์ดํฐ๋ ํค์ ๊ฐ์ด ํ๋์ ์์ ์ด๋ฃฌ๋ค”
์ด๋ ๋ฏ ํ ์ด๋ธ์ ์ ์ฅ๋๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ค์ ํค๊ฐ ์์ด์ผ ํ๋ฉฐ ํค๋ ๊ณ ์ ํ ๊ฐ์ ๊ฐ์ ธ์ผํ๋ค.
StuInfo stuInfoArr[1000];
StuInfo student;
int stuNum;
printf("ํ๋ฒ๊ณผ ๋์ด ์
๋ ฅ: ");
scanf("%d %d", &(student.stuEmp), &(student.age));
stuInfoArr[student.stuEmp] = student;
์์ ์์์์๋ ๊ณ ์ ํ ํ์๋ฒํธ๋ฅผ ์ด์ฉํ์ฌ ๋ฐฐ์ด์ ๊ฐ์ ๋ฃ์๋ค. ์ด๋ ๊ฒ ์ฝ๋๋ฅผ ๊ตฌ์ฑํ๋ฉด ํ์์ ์๊ฐ 1000๋ช ์ ๋์์ ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค. ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐ ํ๊ธฐ ์ํ ํด๊ฒฐ์ฑ ์ผ๋ก hashํจ์๋ฅผ ์ฌ์ฉ ํ ์ ์๋ค.
์๋ฅผ ๋ค์ด
int Hash(int stuNum)
{
return stuNum % 100;
}
์์ ์์์ ๊ฐ์ด ์ฌ์ฉํ๋ฉด ํ๋ฒ์ ๋ 2์๋ฆฌ๋ฅผ ๋ฐํ์ผ๋ก ๊ฐ์ ์ ์ฅ ํ ์ ์๊ธฐ๋๋ฌธ์ , ์๋์ ์ผ๋ก ์ ์ ์ ์ฅ๊ณต๊ฐ์ ์ฌ์ฉ ํ ์ ์๋ค.
ํ์ง๋ง ์์ ๋ฐฉ์์๋ ์ถฉ๋์ด๋ผ๋ ๋ฌธ์ ๊ฐ ์๋ค. ์๋ฅผ ๋ค์ด 1301 ๊ณผ 1401์ด๋ผ๋ ํ๋ฒ์ ๊ฐ๋ ํ์๋ค์ ๊ฐ์ ๊ณต๊ฐ์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋์ด์ผ ํ๋ค.
์ถฉ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ผ๋ก ์ ํ ์กฐ์ฌ๋ฒ๊ณผ ์ด์ฐจ ์กฐ์ฌ๋ฒ์ด ์๋ค.
- ํด์ฌํจ์ key % 7
ํด์ฌํจ์๊ฐ key % 7 ์ด๋ผ๊ณ ํ ๋ 2์ 9 ๊ฐ ๊ฐ์ ๊ณต๊ฐ์ ์ ์ฅ๋๋ค. ์ ํ ์กฐ์ฌ๋ฒ์ ์ ์ฅํ ๊ณต๊ฐ์ ์ด๋ฏธ ๊ฐ์ด ์์ ๋ ๋ฐ๋ก ์ f(x) + 1์์น์ ๊ฐ์ ์ ์ฅํ๋ ๊ฒ์ด๋ค. f(x) + 1 ์์น์๋ ๊ฐ์ด ์ ์ฅ๋์ด ์๋ค๋ฉด + 1… ์ฉ ์ ์ฅ ์์น๋ฅผ ์ด๋ ์ํจ๋ค.
์ ํ ์กฐ์ฌ๋ฒ์ ์ฌ์ฉํ๋ฉด ํน์ ์์น์ ๋ฐ์ดํฐ๊ฐ ๋ชฐ๋ฆฌ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋๋ฐ, ์กฐ๊ธ ๋ ๋ฉ๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ฉด ์ด๋จ๊น ํ๋ ์๊ฐ์ผ๋ก ๋ง๋ค์ด ์ก๋ค.
์ด์ฐจ ์กฐ์ฌ๋ฒ์ f(x) + 1 ^ 2 → f(x) + 2 ^ 2 ์ผ๋ก ๊ฐ์ ์ ์ฅํ๋ค.
์ถฉ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก ์ฌ์ฉํ ์ ์๋ ๋ฐฉ๋ฒ์ค ํ๋๋ ์ฒด์ด๋์ด๋ค.
์์ ์์์ ๊ฐ์ด LinkedList๋ฅผ ์ฌ์ฉํด ๊ฐ์ ํด์ฌ ๊ฐ์ ๊ฐ๋ ๋ฐ์ดํฐ๋ค์ ์ฎ๋๋ค.
์์ ๋ฐฉ์์ “๋ซํ ์ด๋๋ ์ค ๋ฐฉ์”์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. ์ฒด์ด๋์ ์ฌ์ฉํ๋ฉด ํ๋์ ํด์ฌ๊ฐ์ผ๋ก ๋ฌถ์ฌ ์๋ ์ฌ๋กฏ ๋ค์ ๋ชจ๋ ๊ฒ์ฌํด์ผ ํ๋ค๋ ๋จ์ ์ด ์์ง๋ง, ์ข์ ํด์ฌ๊ฐ์ ์ฌ์ฉํด์ ์ด๋ฌํ ๋ฌธ์ ์ ์ ํด๊ฒฐ ํ ์ ์๋ค.
ํ ์ด๋ธ ํด์ฌ ์ฝ๋(c++): https://boiling-fowl-6d6.notion.site/c-140f3da88dd546f4bd32a9c7cbbe5a22
ํ ์ด๋ธ ํด์ฌ ์ฝ๋(c): https://boiling-fowl-6d6.notion.site/c-6f5cf4e65c4a483086845db21ace545a