[Algorithm] _ 아나그램

이지·2021년 10월 10일
0

algorithm

목록 보기
4/10

기존에는 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));
profile
이지피지레몬스퀴지🍋

0개의 댓글

관련 채용 정보