1. 해시 테이블이란?
- 자료구조 종류 중 하나로 key와 value를 가짐
직업 : 개발자
나이 : 28
2. 해시란?
- 해시함수라고 하는 함수를 이용해서 입력값을 고정길이 문자열로 치환하는 것
- 배열은 key값에 숫자만 받을 수 있지만 해시는 문자열까지 받을 수 있음
- 문자열로 받은 key 값을 해싱이라는 과정을 통해서 일정 길이의 주소값으로 바꿔서 저장해두고 있기 때문 --> 해시 함수의 역할
3. 자바스크립트에서는 좀 더 쉽게 해시 테이블을 사용할 수 있게끔 해주는 자료구조가 있다. --> Map
4. Map이란?
- key가 있는 데이터를 저장하는 데 쓰이는 자료구조
- Map의 key값은 문자열 가능 --> 해시에 이용 가능
5. Map 메서드
- new Map() --> Map의 객체를 만들 때 사용
- map.set(key,value) --> key를 이용해 value값 저장
- map.get(key) --> key에 해당하는 value 반환
- map.has(key) --> key가 존재한다면 true, 없다면 false 반환
- map.delete(key) --> key에 해당하는 값 삭제
- map.size --> 요소의 개수 반환
- map.entries --> 맵 객체처럼 key-value를 쌍으로 묶은 이터레이터 반환
function solution(participant, completion) {
let answer = ''
const myMap = new Map();
for (const part of participant){
if(!myMap.get(part)){
// map에 값이 없으면 value에 1 저장
myMap.set(part, 1);
}else{
// 있다면 value에 + 1
myMap.set(part, myMap.get(part)+1);
}
}
for(const com of completion){
// 완주자 배열을 반복해 value 1씩 감소
if(myMap.get(com)){
myMap.set(com, myMap.get(com)-1);
}
}
for(const part of participant){
// value가 1 이상이면 완주하지 못한 인원이므로 return
if(myMap.get(part) && myMap.get(part) >=1 ){
answer = part;
}
}
return answer
}
'JAVASCRIPT > 문법' 카테고리의 다른 글
[자료구조/알고리즘] 동적계획법(DP) (0) | 2024.03.10 |
---|---|
[자료구조 / 알고리즘] 스택, 큐 (0) | 2024.03.04 |
[JAVASCRIPT] 정규식 (0) | 2024.01.27 |
[JAVASCRIPT] replace, replaceAll (0) | 2024.01.07 |
[JAVASCRIPT] map과 filter의 차이 (0) | 2023.03.07 |