[1스4코2파] # 182. LeetCode 15. 3Sum

gunny·2023년 7월 4일
0

코딩테스트

목록 보기
187/538

[1스4코2파] 1명의 스위프트 개발자와 4명의 코틀린 개발자, 2명의 파이썬 개발자코딩 테스트 서막 : 1스4코1파

Rule :

하루에 1문제씩 풀기.
한 문제당 30분씩은 고민하기.
왜 그렇게 풀었는지 공유하기.
하루라도 놓친다면 벌금은 1,000원
백준 플래티넘, 프로그래머스 4단계, 개발자 탈퇴 시 모임 탈퇴 가능

START :

[3코1파] 2023.01.04~ (182차)
[4코1파] 2023.01.13~ (174일차)
[1스4코1파] 2023.04.12~ (85일차)
[1스4코2파] 2023.05.03 ~ (63일차)

Today :

2023.07.04 [182일차]
LeetCode Patterns
15. 3Sum
https://leetcode.com/problems/3sum/description/

15. 3Sum

https://leetcode.com/problems/3sum/description/

문제 설명

int형 데이터타입이 있는 배열이 주어질 때,
세 원소들을 더해서 0이 나오는 원소들을 duplicates return

문제 풀이 방법

배열을 loop 돌면서, 첫번째 인덱스 기준으로 loop를 한번더 돎
이때 돌때 two pointer를 사용해서 0이 되는 것을 찾음
개복잡함

내 코드

class Solution:
    def threeSum(self, nums: List[int]) -> List[List[int]]:
        ans = []
        nums.sort()

        for idx, num in enumerate(nums):
            if idx>0 and num==nums[idx-1]:
                continue
            
            left, right = idx+1, len(nums)-1

            while left<right:
                threeSum = num + nums[left] + nums[right]
                if threeSum>0:
                    right -=1
                elif threeSum <0:
                    left +=1
                else:
                    ans.append([num, nums[left], nums[right]])
                    left +=1
                    while nums[left] == nums[left-1] and left < right:
                        left += 1
        return ans

증빙

여담

아 에너지 없어 에너지 없는 날 2일차

profile
꿈꾸는 것도 개발처럼 깊게

0개의 댓글