class Solution {
public:
vector<vector<int>> threeSum(vector<int>& nums) {
sort(nums.begin(), nums.end());
set<vector<int>> res;
for(int i=0;i<nums.size();i++){
int l = i+1, r = nums.size()-1;
while(l<r){
int sum = nums[i]+nums[l]+nums[r];
if(sum<0){
l++;
}else if(sum>0){
r--;
}else{
res.insert({nums[i], nums[l], nums[r]});
l++;
r--;
}
}
}
return vector<vector<int>>(res.begin(), res.end());
}
};
- set -> vector ์ฌ์ฉ ์ด์ ๋ ์ค๋ณต ์ ๊ฑฐ๋ฅผ ์ํจ
class Solution {
public:
vector<vector<int>> threeSum(vector<int>& nums) {
sort(nums.begin(), nums.end());
set<vector<int>> res;
for(int i=0;i<nums.size();i++){
if(i != 0 && nums[i] == nums[i-1]) continue;
int l = i+1, r = nums.size()-1;
while(l<r){
int sum = nums[i]+nums[l]+nums[r];
if(sum<0){
l++;
}else if(sum>0){
r--;
}else{
res.insert({nums[i], nums[l], nums[r]});
l++;
r--;
}
}
}
return vector<vector<int>>(res.begin(), res.end());
}
};
if(i != 0 && nums[i] == nums[i-1]) continue; ๋ฅผ ํตํ ํ์ ๋ฒ์ ์ค์ด๊ธฐ ์ต์ ํ ์ ๋์ ์ฐจ์ด๋ก ์ / ํ์ ๊ฐ๋ฆฌ๋ ์ ๋
- ๋จ์ 2 pointer๋ก ์ฒ๋ฆฌํด๋ ๋ฌด๋ฐฉ