[LeetCode] 49. Group Anagrams

Chobby·2024년 9월 4일
1

LeetCode

목록 보기
85/194

Map 객체를 활용하여 풀이하였음

문자열의 Anagram 여부를 판단하기 위해 정렬하여 키 값으로 확인했음

Map 객체를 Array로 변환하기 위해 Iterator를 사용하여 변환

😎풀이

function groupAnagrams(strs: string[]): string[][] {
    const result = []
    const anagramMap = new Map()

    for(const str of strs) {
        // 현재 문자열을 정렬하여 키 값으로 설정
        const splitedStr = str.split("")
        const sortedStr = splitedStr.sort().join("")
        // 같은 키 값이 있다면 병합, 아니면 추가
        if(!anagramMap.has(sortedStr)) {
            anagramMap.set(sortedStr, [str])
        } else {
            const curVal = anagramMap.get(sortedStr)
            anagramMap.set(sortedStr, [...curVal, str])
        }
    }

    const iterator = anagramMap.values()

    // Map 객체를 반복하며 설정된 값을 배열로 변환
    while(true) {
        const cur = iterator.next()
        if(cur.done) return result
        result.push(cur.value)
    }

    return result
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글