Skip to content

Commit 2f4cafa

Browse files
committed
group-anagrams
1 parent b4bd5b1 commit 2f4cafa

File tree

1 file changed

+36
-12
lines changed

1 file changed

+36
-12
lines changed

โ€Žgroup-anagrams/haung921209.md

+36-12
Original file line numberDiff line numberDiff line change
@@ -3,29 +3,53 @@
33
- [๋‹ต์•ˆ ์ฝ”๋“œ ์ œ์ถœ๋ฒ•](https://github.com/DaleStudy/leetcode-study/wiki/%EB%8B%B5%EC%95%88-%EC%A0%9C%EC%B6%9C-%EA%B0%80%EC%9D%B4%EB%93%9C)
44

55
# Problem
6-
- ๋ฌธ์ œ ๋งํฌ :
7-
- ๋ฌธ์ œ ์ด๋ฆ„ :
8-
- ๋ฌธ์ œ ๋ฒˆํ˜ธ :
9-
- ๋‚œ์ด๋„ :
6+
- ๋ฌธ์ œ ๋งํฌ : https://leetcode.com/problems/group-anagrams/description/
7+
- ๋ฌธ์ œ ์ด๋ฆ„ : Group Anagrams
8+
- ๋ฌธ์ œ ๋ฒˆํ˜ธ : 49
9+
- ๋‚œ์ด๋„ : medium
1010
- ์นดํ…Œ๊ณ ๋ฆฌ :
1111

1212
# ๋ฌธ์ œ ์„ค๋ช…
1313

1414

1515
# ์•„์ด๋””์–ด
16-
- ์–ด๋–ค ๋ฐฉ๋ฒ•์œผ๋กœ ์ ‘๊ทผํ–ˆ๋Š”์ง€ ์„œ์ˆ 
17-
- ํฌ์Šค vs ์ตœ์ ํ™” ์•„์ด๋””์–ด ์ฐจ์ด ๋“ฑ
18-
- ์žก๋„์— ๋Œ€ํ•œ ๊ณ ๋ ค
16+
- string์„ ์ •๋ ฌ -> key๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
17+
- ์ •๋ ฌ์„ ์ด์šฉํ•ด ์„œ๋กœ ๋‹ค๋ฅธ permutation(anagram)๋“ค์„ ๊ฐ™์€ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์Œ.
18+
- unordered_map์„ ์‚ฌ์šฉํ•ด์„œ key lookup์ด ํ‰๊ท ์ ์œผ๋กœ **O(1)**์— ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ์ „์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋งค์šฐ ํšจ์œจ์ ์ž„.
1919

2020
# โœ… ์ฝ”๋“œ (Solution)
21-
21+
```
22+
class Solution {
23+
public:
24+
vector<vector<string>> groupAnagrams(vector<string>& strs) {
25+
vector<vector<string>> res;
26+
unordered_map<string, vector<string>> um;
27+
for(auto str: strs){
28+
string key= str;
29+
sort(key.begin(), key.end());
30+
um[key].push_back(str);
31+
}
32+
for(auto vec = um.begin();vec != um.end(); vec++){
33+
res.push_back(vec->second);
34+
}
35+
return res;
36+
}
37+
};
38+
39+
```
2240
# ๐Ÿ” ์ฝ”๋“œ ์„ค๋ช…
23-
41+
- length๊ฐ€ 10^4 ์ดํ•˜ + sort -> input ์ƒ ์ƒ์ˆ˜ ์‹œ๊ฐ„ ๋‚ด ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ
42+
- ์ •๋ ฌ์„ ์ด์šฉํ•ด ์„œ๋กœ ๋‹ค๋ฅธ permutation(anagram)๋“ค์„ ๊ฐ™์€ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์Œ.
43+
- unordered_map์„ ์‚ฌ์šฉํ•ด์„œ key lookup์ด ํ‰๊ท ์ ์œผ๋กœ **O(1)**์— ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ์ „์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋งค์šฐ ํšจ์œจ์ ์ž„.
44+
-
2445

2546
# ์ตœ์ ํ™” ํฌ์ธํŠธ (Optimality Discussion)
26-
โ€ข ์ตœ์ ํ™”ํ•œ ์ด์œ ์™€ ์›๋ฆฌ
27-
โ€ข ๋” ์ค„์ผ ์ˆ˜ ์žˆ๋Š” ์—ฌ์ง€๋Š” ์žˆ๋Š”๊ฐ€?
28-
โ€ข ๊ธฐ์กด ๋ฐฉ๋ฒ• ๋Œ€๋น„ ์–ผ๋งˆ๋‚˜ ํšจ์œจ์ ์ด์—ˆ๋Š”์ง€
47+
- ๋ถˆํ•„์š”ํ•œ ๋ฌธ์ž์—ด ๋ณต์‚ฌ ๋ฐฉ์ง€:
48+
- for(auto& str : strs) ์ฒ˜๋Ÿผ auto ๋’ค์— &(๋ ˆํผ๋Ÿฐ์Šค) ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, str์„ ๋ณต์‚ฌํ•˜์ง€ ์•Š๊ณ  ์ฐธ์กฐ๋กœ ๋ฐ›์•„ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ์„ ์ค„์ผ ์ˆ˜ ์žˆ์Œ.
49+
- key string ์ƒ์„ฑ ๋น„์šฉ ์ค„์ด๊ธฐ:
50+
- ๋ฌธ์ž์—ด์„ ๋งค๋ฒˆ ์ •๋ ฌํ•˜๋ฉด O(K log K) (K๋Š” ๋ฌธ์ž์—ด ๊ธธ์ด) ๋น„์šฉ์ด ๋“ฆ.
51+
- ๋งŒ์•ฝ ๋ชจ๋“  ์ž…๋ ฅ ๋ฌธ์ž์—ด์ด ์˜์–ด ์†Œ๋ฌธ์ž(a~z)๋กœ ์ œํ•œ๋œ๋‹ค๋ฉด, 26๊ฐœ ์•ŒํŒŒ๋ฒณ์˜ ๋นˆ๋„์ˆ˜ ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•ด์„œ O(K)๋กœ key๋ฅผ ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ์Œ.
52+
- ์ด ๊ฒฝ์šฐ ์ •๋ ฌ์ด ์•„๋‹ˆ๋ผ counting ๊ธฐ๋ฐ˜ key ์ƒ์„ฑ.
2953

3054
# ๐Ÿงช ํ…Œ์ŠคํŠธ & ์—ฃ์ง€ ์ผ€์ด์Šค
3155

0 commit comments

Comments
ย (0)