본문 바로가기

알고리즘/리트코드

49. Group Anagrams

결국 알파벳 같은게 있으면 되니까. 가장 효율적인 비교 방법은 정렬이다.

const groupAnagrams = function(strs) {
    let obj = {}
    for (let str of strs) {
        let letters = str.split("").sort().join("")
        obj[letters] ? obj[letters].push(str) : obj[letters] = [str]    
    }
    return Object.values(obj)
};

map set 은 이터러블이라 아래 느낌도 가능하다.


const groupAnagrams = function(strs) {
    let m = new Map();
    for (let str of strs) {
        let sorted = str.split("").sort().join("");
        if (m.has(sorted)) m.set(sorted, [...m.get(sorted), str]);
        else m.set(sorted, [str]);
    }
    return Array.from(m.values());
};

'알고리즘 > 리트코드' 카테고리의 다른 글

53. Maximum Subarray  (0) 2022.04.05
187. Repeated DNA Sequences  (0) 2022.04.03
127. Word Ladder  (0) 2022.03.31
136. Single Number  (0) 2022.03.31
48. Rotate Image  (0) 2022.03.28