Skip to content

Commit 21654f1

Browse files
committed
0049-group-anagrams
1 parent 2e0945e commit 21654f1

1 file changed

Lines changed: 24 additions & 0 deletions

File tree

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
/**
2+
* input str์˜ ๊ธธ์ด๊ฐ€ n์ด๊ณ , ๊ฐ str ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋ฅผ m๋ผ ํ•  ๋•Œ
3+
*
4+
* TC : O(n * m log n)
5+
* - n ๋ฒˆ ์ˆœํšŒํ•  ๋•Œ๋งˆ๋‹ค ๊ฐ ๋‹จ์–ด ์ •๋ ฌ์— m log m ๋งŒํผ ์†Œ์š”๋˜๋ฏ€๋กœ O(n * m log m)
6+
* SC : O(n * m)
7+
* - n * m ๋งŒํผ์˜ char ๋ฐฐ์—ด ๊ณต๊ฐ„์„ key ๊ฐ’ ์ƒ์„ฑ์œผ๋กœ ์‚ฌ์šฉ
8+
* - ์ •๋‹ต Map ์—์„œ ์ž…๋ ฅ ํฌ๊ธฐ n๋งŒํผ์˜ ๊ณต๊ฐ„ ์„ ์‚ฌ์šฉ
9+
* - ๋”ฐ๋ผ์„œ (n * m) + n ์ฆ‰ O(n * m) ๋งŒํผ์˜ ๊ณต๊ฐ„ ์‚ฌ์šฉ
10+
*/
11+
class Solution {
12+
public List<List<String>> groupAnagrams(String[] strs) {
13+
Map<String, List<String>> answer = new HashMap<>();
14+
15+
for(String str : strs) {
16+
char[] c = str.toCharArray();
17+
Arrays.sort(c);
18+
String key = String.valueOf(c);
19+
answer.computeIfAbsent(key, k -> new ArrayList<>()).add(str);
20+
}
21+
22+
return new ArrayList<>(answer.values());
23+
}
24+
}

0 commit comments

Comments
ย (0)