|
| 1 | +# ์ฐ๊ด ๋งํฌ |
| 2 | +- [๋ฌธ์ ํ์ด ์ค์ผ์ค](https://github.com/orgs/DaleStudy/projects/6/views/5) |
| 3 | +- [๋ต์ ์ฝ๋ ์ ์ถ๋ฒ](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) |
| 4 | + |
| 5 | +# Problem |
| 6 | +- ๋ฌธ์ ๋งํฌ : https://leetcode.com/problems/group-anagrams/description/ |
| 7 | +- ๋ฌธ์ ์ด๋ฆ : Group Anagrams |
| 8 | +- ๋ฌธ์ ๋ฒํธ : 49 |
| 9 | +- ๋์ด๋ : medium |
| 10 | +- ์นดํ
๊ณ ๋ฆฌ : |
| 11 | + |
| 12 | +# ๋ฌธ์ ์ค๋ช
|
| 13 | + |
| 14 | + |
| 15 | +# ์์ด๋์ด |
| 16 | +- string์ ์ ๋ ฌ -> key๋ก ์ฌ์ฉ ๊ฐ๋ฅ |
| 17 | + - ์ ๋ ฌ์ ์ด์ฉํด ์๋ก ๋ค๋ฅธ permutation(anagram)๋ค์ ๊ฐ์ ๊ทธ๋ฃน์ผ๋ก ๋ฌถ์. |
| 18 | +- unordered_map์ ์ฌ์ฉํด์ key lookup์ด ํ๊ท ์ ์ผ๋ก **O(1)**์ ๊ฐ๋ฅํ๋ฏ๋ก ์ ์ฒด ์๊ณ ๋ฆฌ์ฆ์ ๋งค์ฐ ํจ์จ์ ์. |
| 19 | + |
| 20 | +# โ
์ฝ๋ (Solution) |
| 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 | +``` |
| 40 | +# ๐ ์ฝ๋ ์ค๋ช
|
| 41 | +- length๊ฐ 10^4 ์ดํ + sort -> input ์ ์์ ์๊ฐ ๋ด ์ฒ๋ฆฌ ๊ฐ๋ฅ |
| 42 | + - ์ ๋ ฌ์ ์ด์ฉํด ์๋ก ๋ค๋ฅธ permutation(anagram)๋ค์ ๊ฐ์ ๊ทธ๋ฃน์ผ๋ก ๋ฌถ์. |
| 43 | +- unordered_map์ ์ฌ์ฉํด์ key lookup์ด ํ๊ท ์ ์ผ๋ก **O(1)**์ ๊ฐ๋ฅํ๋ฏ๋ก ์ ์ฒด ์๊ณ ๋ฆฌ์ฆ์ ๋งค์ฐ ํจ์จ์ ์. |
| 44 | +- |
| 45 | + |
| 46 | +# ์ต์ ํ ํฌ์ธํธ (Optimality Discussion) |
| 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 ์์ฑ. |
| 53 | + |
| 54 | +# ๐งช ํ
์คํธ & ์ฃ์ง ์ผ์ด์ค |
| 55 | + |
| 56 | +# ๐ ๊ด๋ จ ์ง์ ๋ณต์ต |
| 57 | + |
| 58 | +# ๐ ํ๊ณ |
| 59 | + |
| 60 | + |
0 commit comments