We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 7c37273 commit aa4894aCopy full SHA for aa4894a
group-anagrams/mmyeon.ts
@@ -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