Hash
Algorithm알고리즘 노트 기록용
개념
key: value
형태를 갖는 자료구조 (전화번호부)
무언가를 찾기 위한 검색어가 key
, 관련 정보가 value
.
주로 사용되는 함수 : get
, put
, getOrDefault
HashMap.put(“A”,true)
== HashMap[“A”] = true
bool fin = hashmap.get(“A”);
== bool fin = hasnmap[“A”];
hashMap.get(“A”)
-> “A” 키가 존재하는지 확인해야 함
hashMap.getOrDefault(“A”,false)
-> A가 있다면 A의 value를 반환, else false반환
어떤 문제에서 Hash를 써야 할까?
-> String 을 기반으로 정보를 기록하고 관리해야 될 때 무조건 해시를 씀
Programmers 문제 예시
- 완주하지 못한 선수 :
- 선수 이름 -> 완주 여부
- String -> hash
- String Key : Bool Value
- 신고 결과 받기 :
- 신고 당한 사람 기준 -> 신고자 목록
- 신고당한 사람 이름 String
- String Key : ArrayList
Value
- 위장 :
- 옷의 종류에 따라 몇개의 의상 종류가 있는지
- 옷의 종류는 정수가 아닌 String
- String Key : Integer Value