๋ฌธ์
์ฝ๋
class Solution {
public:
vector<vector<string>> groupAnagrams(vector<string>& strs) {
map<string,vector<string>>m;
map<char,int>char_check;
sort(strs.begin(),strs.end());
vector<string>temp = strs;
for(int i=0; i<temp.size(); i++){
sort(temp[i].begin(),temp[i].end());
m[temp[i]]={};
}
vector<string> origin = strs;
for(int i=0; i<strs.size(); i++){
sort(strs[i].begin(),strs[i].end());
m[strs[i]].push_back(origin[i]);
}
vector<vector<string>>ans;
for(auto i = m.begin(); i!=m.end(); i++){
ans.push_back(i->second);
}
return ans;
}
};
ํ์ด
์ ๋ ฅ ๋ฐฐ์ด ์์ ๋ชจ๋ ๋ฌธ์ ๋ฐฐ์ด ์์ ๋ฌธ์์ด๋ค์ ์ ๋ ฌํ์ฌ ๋งต ํ ์ด๋ธ์ ๋ฃ์ต๋๋ค. ๊ทธ ํ strs ๋ฐฐ์ด์ ํฌ๊ธฐ๋งํผ ๋๋ฉด์ ์ ๋ ฌ ํ ๋ฌธ์์ ๊ฐ์ด ์๋ ๊ฒฝ์ฐ ์๋ ์ ๋ ฌํ๊ธฐ ์ ๋ฌธ์๋ฅผ ์ฝ์ ํฉ๋๋ค. ๊ทธ ํ ์ถ๋ ฅํฉ๋๋ค.
๋ง์ฌ๊ฐ์ด ์์ด์ ์๋ฅผ ๋ค์ด ์ค๋ช ํ์๋ฉด
["eat","tea","tan","ate","nat","bat"]
์ ์ ๊ฐ์ ์ ๋ ฅ์ด ์ฃผ์ด์ก์๋ ๋จผ์
["ate", "bat", "eat", "nat", "tan", "tea"]
์์ ๊ฐ์ด ์ ๋ ฌ์ ์์ผ์ค๋๋ค. ๊ทธ ํ ๊ฐ ๋ฌธ์์ด๋ค์ ์ ๋ ฌ ํ ๋งต ํ ์ด๋ธ์ ๊ฐ๋ค์ ์ฝ์ ํ๋ฉด
m["aet"]={}, m["abt"] = {}, m= ["ant"] = {},
์์ ๊ฐ์ด ๋งต ํ ์ด๋ธ์ ๊ฐ๋ค์ด ๋ค์ด๊ฐ๊ฒ์ ๋๋ค. ๊ทธ ํ
for(int i=0; i<strs.size(); i++){
sort(strs[i].begin(),strs[i].end());
m[strs[i]].push_back(origin[i]);
}
์ ๊ณผ์ ์ ๊ฑฐ์น๋ฉด m["aet"] ={"ate", "eat", "tea"}, m["abt"] ={"bat"}, m["ant"] = {"nat", "tan"} ์ ๊ฐ์ด ๋ฉ๋๋ค.
์ด์ 2์ฐจ์ ๋ฒกํฐ์ ์ ๋งตํ ์ด๋ธ์ value ๊ฐ๋ค์ ๋ฃ์ด์ฃผ๊ณ ์ถ๋ ฅํ๋ฉด ๋ฉ๋๋ค.
'Algorithm ๐ง๐ปโ๐ป > Leetcode' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Leetcode,c++] Permutations II (0) | 2021.11.15 |
---|---|
[Leetcode,c++] Roman to Integer (0) | 2021.11.15 |
[Leetcode,c++] Find First and Last Position of Element in Sorted Array (0) | 2021.11.14 |
[Leetcode,c++] Next Permutation (0) | 2021.11.14 |
[Leetcode,c++] Length of Last Word (0) | 2021.11.14 |
[Leetcode,c++] Container With Most Water (0) | 2021.11.14 |
๋๊ธ