LeetCode No.49 - Group Anagrams
카테고리: AlgorithmsJanuary 14, 2022
접근
문제에 나와있듯이 애너그램이란 어떤 단어 혹은 구(phrase)를 재배열하여 만든 단어 혹은 구 입니다. 이 말에서 착안하여 배열 strs
에 있는 각 문자열들을 정렬하여 Map
자료구조의 key로 사용하고, 해당 key에 대응하는 값으로 같은 애너그램 그룹에 속하는 문자열들의 배열을 둘 수 있습니다.
자바스크립트 풀이
const sortStringInAsc = (a, b) => a.charCodeAt(0) - b.charCodeAt(0);
function groupAnagrams(strs) {
const group = new Map();
for (const str of strs) {
const key = [...str].sort(sortStringInAsc).join('');
if (!(group.has(key))) group.set(key, []);
group.get(key).push(str);
}
return [...group.values()];
}