결국 알파벳 같은게 있으면 되니까. 가장 효율적인 비교 방법은 정렬이다.
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 |