문제 해결 방법 문제를 읽자마자 "전체 참가자 Set - 완주자 Set 으로 풀면 되겠다!"고 생각했고 멋지게 틀렸다. 제한 사항에 다음과 같은 문장이 있다. 참가자 중에는 동명이인이 있을 수 있습니다. * Set은 '중복'을 허용하지 않는 자료구조이기 때문에 동명이인 처리가 불가능하다. 내 아이디어는 이렇다. HashMap 를 생성하여 동명이인 수 '1명' 이 되는 사람의 이름을 구하자. 구현 (Java)
해시
해싱 정의 키(key) 값에 직접 산술 연산을 적용하여 해시 테이블 주소를 통해 값(Value)에 접근하는 것 해시 테이블 (Hash Table) key 값의 연산에 의해 직접 접근이 가능한 자료구조 Dictionary == Map == Table 사전(Dictionary) 자료구조는 Key - Value를 갖는 자료구조로 오로지 키에 의해 값에 접근한다. (키가 정렬되었는지 여부는 구현시 결정 가능하다.) // 별로 중요하지 않다. ex) 사람 이름(key) - 전화번호(Value) 필수 연산은 다음과 같다. Insert Delete Search 이런 사전 자료구조 (Dictionary)를 효율적으로 구현하기 위해 해시 알고리즘을 적용한다. 해시 함수 키를 입력하여 해시 주소를 얻어낸다. 해시 주소는 ..