
시간 복잡도 : O(n^2)
나에겐 아직 매운맛이었다... 돌고돌아서 투포인터로 풀면 되겠거니~ 까지는 감이 왔는데 그이후로 넘 어려워서 코드를 참고했음
class Solution:
def threeSum(self, nums: List[int]) -> List[List[int]]:
ans = set()
nums.sort()
n = len(nums)
num_map = {num: idx for idx, num in enumerate(nums)}
for i in range(n):
if i > 0 and nums[i] == nums[i - 1]:
continue
for j in range(i + 1, n):
complement = -(nums[i] + nums[j])
if complement in num_map and num_map[complement] > j:
ans.add((nums[i], nums[j], complement))
return ans