[리트코드] 15. 3Sum
2024. 7. 4. 17:33ㆍPS/리트코드
문제 링크
https://leetcode.com/problems/3sum/description/?source=submission-noac
느낀 점
좋은 문제라고 생각했다. 투 포인터 문제 풀이 방식을 익힐 수 있다고 생각했기 때문이다. 하지만, 이전 원소와의 중복을 제거해주지 않으면 시간 초과가 나버리거나 중복으로 인해 정답이 틀리는 고약한 문제였다.. 나는 중복 배열을 없애기 위해 리스트를 만들고 존재하는지를 검사해주었는데, 그것 때문에 시간 초과가 계속 났음..
class Solution:
def threeSum(self, nums: List[int]) -> List[List[int]]:
answer = []
nums.sort()
for i in range(len(nums) - 2):
if i > 0 and nums[i] == nums[i - 1]:
continue
s, e = i + 1, len(nums) - 1
while s < e:
sum_list = [nums[i], nums[s], nums[e]]
if sum(sum_list) < 0:
s += 1
elif sum(sum_list) > 0:
e -= 1
else:
answer.append(sum_list)
while s < e and nums[s] == nums[s + 1]:
s += 1
while s < e and nums[e] == nums[e - 1]:
e -= 1
s += 1
e -= 1
return answer
'PS > 리트코드' 카테고리의 다른 글
[리트코드] 739. Daily Temperatures 00 | 2024.07.11 |
---|---|
[리트코드] 2. Add Two Numbers 22 | 2024.07.10 |
[리트코드] 206. Reverse Linked List 00 | 2024.07.10 |
[리트코드] 238. Product of Array Except Self 00 | 2024.07.10 |