Skip to content

Commit 6fa0ef0

Browse files
committed
2주차 문제 풀이 1개 추가
- 3Sum
1 parent b80e22c commit 6fa0ef0

1 file changed

Lines changed: 41 additions & 0 deletions

File tree

3sum/hwi-middle.cpp

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
class Solution {
2+
public:
3+
vector<vector<int>> threeSum(vector<int>& nums) {
4+
vector<vector<int>> res;
5+
6+
sort(nums.begin(), nums.end());
7+
8+
for (int i = 0; i < nums.size() && nums[i] <= 0; ++i)
9+
{
10+
if (i != 0 && nums[i - 1] == nums[i])
11+
{
12+
continue;
13+
}
14+
15+
int l = i + 1;
16+
int r = nums.size() - 1;
17+
while (l < r)
18+
{
19+
int sum = nums[i] + nums[l] + nums[r];
20+
if (sum < 0)
21+
{
22+
++l;
23+
}
24+
else if (sum > 0)
25+
{
26+
--r;
27+
}
28+
else
29+
{
30+
res.push_back({nums[i], nums[l++], nums[r--]});
31+
while (l < r && nums[l] == nums[l - 1])
32+
{
33+
++l;
34+
}
35+
}
36+
}
37+
}
38+
39+
return res;
40+
}
41+
};

0 commit comments

Comments
 (0)