짱아의 개발 기록장

LeetCode : 49. Group Anagrams 본문

Algorithm/LeetCode

LeetCode : 49. Group Anagrams

jungahshin 2021. 1. 19. 12:44
반응형

String을 다루는 문제였다.

 

[메인 로직]

map을 사용하여 각각의 문자열을 정렬한 결과와 같은 문자열들을 하나의 vector에 넣어 분류해주었다.

aet -> ["eat", "tea", "ate"]

ant -> ["tan", "nat"]

...

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class Solution {
public:
    map<stringint> m;
    vector<vector<string>> ans;
    vector<vector<string>> groupAnagrams(vector<string>& strs) {
        ans.resize(strs.size());
        int idx = 0;
        for(int i=0; i<strs.size(); i++){
            string temp = strs[i];
            sort(temp.begin(), temp.end());
            if(m.count(temp)==0){
                m[temp] = idx++;
                ans[m[temp]].push_back(strs[i]);
            }else{
                ans[m[temp]].push_back(strs[i]);
            }
        }
        
        for(int i=0; i<ans.size(); i++){
            if(ans[i].size()==0){
                ans.erase(ans.begin()+i, ans.end());
            }
        }
        return ans;
    }
};
cs
반응형

'Algorithm > LeetCode' 카테고리의 다른 글

LeetCode : 2. Add Two Numbers  (0) 2021.01.20
LeetCode : 21. Merge Two Sorted Lists  (0) 2021.01.20
LeetCode : 20. Valid Parentheses  (0) 2021.01.19
LeetCode : 77. Combinations  (0) 2021.01.18
LeetCode : 47. Permutations II  (0) 2021.01.17
Comments