1차원 리스트에서 세 원소의 합이 0이 되는 원소들을 출력
출력되는 원소의 순서는 상관 없으나 중복되는 원소가 있을 수 있으며 중복되는 정답은 하나만 적어야 함
class Solution:
def threeSum(self, nums: List[int]) -> List[List[int]]:
sorted_nums = sorted(nums)
answer = []
for i in range(len(sorted_nums)-2):
target = 0 - sorted_nums[i]
s = i+1
e = len(sorted_nums)-1
if i > 0 and sorted_nums[i] == sorted_nums[i-1]: continue
while s<e:
sum = sorted_nums[s] + sorted_nums[e]
if sum < target:
s += 1
elif sum > target:
e -= 1
else:
answer.append([sorted_nums[i], sorted_nums[s], sorted_nums[e]])
while s < e and sorted_nums[s] == sorted_nums[s+1]: s += 1
while s < e and sorted_nums[e] == sorted_nums[e-1]: e -= 1
s += 1
e -= 1
return answer