Skip to content

Commit 74be307

Browse files
committed
🎨 3Sum Solution
1 parent 249dc81 commit 74be307

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

3sum/dalpang81.java

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
/*
2+
* 시간복잡도 : O(N^2)
3+
* 공간복잡도 : O(1)
4+
* */
5+
import java.util.*;
6+
7+
class Solution {
8+
public List<List<Integer>> threeSum(int[] nums) {
9+
List<List<Integer>> result = new ArrayList<>();
10+
Arrays.sort(nums);
11+
12+
for (int i = 0; i < nums.length - 2; i++) {
13+
if (i > 0 && nums[i] == nums[i - 1]) {
14+
continue;
15+
}
16+
17+
int left = i + 1;
18+
int right = nums.length - 1;
19+
20+
while (left < right) {
21+
int sum = nums[i] + nums[left] + nums[right];
22+
23+
if (sum == 0)
24+
{
25+
// 합이 0인 경우 결과에 추가
26+
result.add(Arrays.asList(nums[i], nums[left], nums[right]));
27+
28+
// 중복된 값 건너뛰기
29+
while (left < right && nums[left] == nums[left + 1])
30+
left++;
31+
32+
while (left < right && nums[right] == nums[right - 1])
33+
right--;
34+
35+
left++;
36+
right--;
37+
}
38+
else if (sum < 0)
39+
left++;
40+
else
41+
right--;
42+
43+
}
44+
}
45+
return result;
46+
}
47+
}

0 commit comments

Comments
 (0)