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
};