기존에는 obj의 key value로 해쉬알고리즘을 구현했는데, map 은 처음사용해봤다. set과 map .. 은 처음 써보는 자료형이지만, 유용할 것 같다.
function solution(str1, str2){
let answer="YES";
//map 자료구조형은 has,get 등의 메서드를 가진다.
let sH = new Map();
for(let x of str1){
if(sH.has(x))
//만약 키값이 이미 존재하면 해당 키의 value 를 가져와 +1 을 해준다.
sH.set(x, sH.get(x)+1);
//없으면 value를 1로 초기세팅한다.
else sH.set(x, 1);
}
for(let x of str2){
// 만약 key가 존재하지 않거나, 해당 key 알파벳의 value가 비교군 보다 부족한 경우.. 아나그램이 성립하지 않는다.
if(!sH.has(x) || sH.get(x)==0) return "NO";
//str2 의 값을 str1에서 하나씩 빼준다.
sH.set(x,sH.get(x)-1);
}
return answer;
}
let a="AbaAeCe";
let b="baeeACA";
console.log(solution(a, b));