Skip to content

Commit aa4894a

Browse files
committed
add solution : 49. Group Anagrams
1 parent 7c37273 commit aa4894a

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

group-anagrams/mmyeon.ts

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/**
2+
*
3+
* 접근 방법 :
4+
* - group anagrams 저장할 map 선언하기
5+
* - 단어 문자열 strs 순회하면서 단어 정렬하기
6+
* - map에 존재하지 않는 경우, 배열 형태로 맵에 저장하기.
7+
* - map에 존재하는 경우, 기존 값에 현재 단어 추가하기
8+
* - map의 값들만 리턴하기
9+
*
10+
* 시간복잡도 : O(n * klogk)
11+
* - n은 strs 길이, k는 단어 길이
12+
* - strs 배열 n번 순회 : O(n)
13+
* - 각 단어 정렬 : O(klogk)
14+
*
15+
* 공간복잡도 : O(n)
16+
* - map에 strs 길이만큼 저장하니까
17+
*/
18+
function groupAnagrams(strs: string[]): string[][] {
19+
const map = new Map<string, string[]>();
20+
21+
for (const str of strs) {
22+
const sortedWord = str.split("").sort().join("");
23+
if (map.get(sortedWord)) {
24+
map.get(sortedWord)!.push(str);
25+
} else {
26+
map.set(sortedWord, [str]);
27+
}
28+
}
29+
30+
return [...map.values()];
31+
}

0 commit comments

Comments
 (0)