숫자 분석법(digit analysis)은 모든 키 값이 미리 알려져 … | [7급 국가직 자료구조론] 23년 1회차 기출문제 상세 페이지
1[7급 국가직 자료구조론] 23년 1회차
숫자 분석법(digit analysis)은 모든 키 값이 미리 알려져 있을 때 유용한 해시 함수이다. 키 집합이 다음과 같을 때, 숫자 분석법을 이용하여 십진수 두 자리의 주소를 생성하고자 한다. 두 자리 주소에 들어갈 자릿수로 가장 적절한 것은?
| 0001 | 1006 | 2011 | 3016 | 4021 | 5026 | 6031 | 7036 | 8041 | 9046 |
| 0002 | 1007 | 2012 | 3017 | 4022 | 5027 | 6032 | 7037 | 8042 | 9047 |
| 0003 | 1008 | 2013 | 3018 | 4023 | 5028 | 6033 | 7038 | 8043 | 9048 |
| 0004 | 1009 | 2014 | 3019 | 4024 | 5029 | 6034 | 7039 | 8044 | 9049 |
| 0005 | 1010 | 2015 | 3020 | 4025 | 5030 | 6035 | 7040 | 8045 | 9050 |
1
100의 자릿수, 1의 자릿수
2
100의 자릿수, 10의 자릿수
3
1000의 자릿수, 1의 자릿수
4
1000의 자릿수, 10의 자릿수
해설
가장 적절한 자릿수는 1000의 자릿수와 1의 자릿수이다.
숫자 분석법은 키의 자릿수별 분포를 조사해 0~9가 고르게 나오는 자리를 주소로 고른다. 50개 키에서 1000의 자리와 1의 자리는 0~9가 각각 다섯 차례씩 고르게 나타나고, 두 자리를 조합하면 50개 키의 주소가 모두 달라 충돌도 없다.
- 100의 자릿수와 1의 자릿수: 100의 자리는 모든 키에서 0이라 사실상 한 자리만 쓰는 셈이다.
- 100의 자릿수와 10의 자릿수: 100의 자리는 항상 0이고 10의 자리도 치우쳐 충돌이 많다.
- 1000의 자릿수와 10의 자릿수: 10의 자리는 0~5만 나오고 빈도도 고르지 않아 1의 자리보다 분포가 나쁘다.
오류나 개정된 내용이 보이면 알려주세요