[알고리즘] 애너그램 판별 JS

이준혁·2024년 2월 23일
post-thumbnail

애너그램을 판별 하는 javscript 알고리즘 입니다.

예시 데이터

const stringA = "string";
const stringB = "stnrig";
// true

const stringA = "string";
const stringB = "strrig";
// false

1. split & sort & join

function isAnagram(strA, strB) {

    if(strA.length !== strB.length){
        return false;
    }

    return strA.split("").sort().join() === strB.split("").sort().join();
}

처음에 개수로 빠르게 판별후 split으로 배열에 한 단어씩 나누고 sort로 정렬후 join으로 합쳐 판별하는 방식입니다.

2. hashmap

function isAnagram(strA, strB) {
    if(strA.length !== strB.length){
        return false;
    }

    const hashMap = {};
    for(const char of strA) {
        hashMap[char] = hashMap[char] ? hashMap[char] + 1 : 1; 
    }

    for (const char of strB) {
        if(!hashMap[char]) {
            return false;
        }        
        hashMap[char]--;
    }
    return true;
}

처음에 개수로 빠르게 판별후 A를 hash값으로 만들고 B를 반복 시켜 있는지 체크 하고 있으면 값을 빼주어서 판별하는 방법 입니다.

0개의 댓글