-
Notifications
You must be signed in to change notification settings - Fork 328
Open
Description
안녕하세요
class Solution:
def threeSum(self, nums: List[int]) -> List[List[int]]:
result = []
nums.sort()
for i in range (len(nums)-2) :
if i > 0 and nums[i] == nums[i-1] : # 중복일 경우 pass
continue
left, right = i +1, len(nums)-1
while left < right :
sum = nums[left] + nums[right] + nums[i]
if sum > 0 : right -=1
if sum < 0 : left += 1 # if 면 틀린다
else : # sum == 0 일 때
result.append([nums[i],nums[left],nums[right]])
while left < right and nums[left] == nums[left+1] : left+=1 # if가 아니라 while
while left < right and nums[right] == nums[right-1] : right-=1
left += 1
right -= 1
return result
class Solution:
def threeSum(self, nums: List[int]) -> List[List[int]]:
result = []
nums.sort()
for i in range (len(nums)-2) :
if i > 0 and nums[i] == nums[i-1] : # 중복일 경우 pass
continue
left, right = i +1, len(nums)-1
while left < right :
sum = nums[left] + nums[right] + nums[i]
if sum > 0 : right -=1
elif sum < 0 : left += 1 # if 면 틀린다
else : # sum == 0 일 때
result.append([nums[i],nums[left],nums[right]])
while left < right and nums[left] == nums[left+1] : left+=1 # if가 아니라 while
while left < right and nums[right] == nums[right-1] : right-=1
left += 1
right -= 1
return result
처음 코드 처럼 if를 두개 하면 틀리고 두번째 if를 elif로 바꾸면 맞습니다가 나옵니다.
그런데 이 둘이 차이가 나는 이유를 모르겠어서 여쭤보고 싶습니다!
Metadata
Metadata
Assignees
Labels
No labels