- Published on
코딩테스트 해시
- Authors

- Name
- Hyo814
해시는 해시 함수로 변환한 값을 인덱스 삼아 키와 값을 저장해, 빠른 데이터 탐색을 제공하는 자료구조입니다.
보통은 인덱스를 활용해서 탐색을 빠르게 만들지만 해시는 키를 활용해 데이터 탐색을 빠르게 합니다.
키 자체가 해시 함수를 거쳐 값이 있는 인덱스가 되므로 값을 찾기 위한 탐색 과정이 필요 없습니다.
// 예제: 문자열에서 처음으로 반복되지 않는 문자 찾기
function firstNonRepeatingChar(str) {
// 각 문자의 빈도를 저장할 해시맵 생성
const charCount = {}
// 문자열을 순회하며 각 문자의 빈도 계산
for (let char of str) {
charCount[char] = (charCount[char] || 0) + 1
}
// 문자열을 다시 순회하며 처음으로 반복되지 않는 문자 찾기
for (let char of str) {
if (charCount[char] === 1) {
return char // 처음으로 반복되지 않는 문자 반환
}
}
return null // 반복되지 않는 문자가 없는 경우 null 반환
}
// 함수 테스트
console.log(firstNonRepeatingChar('swiss')) // 출력: "w"