leetcode 1 (easy)

김준오·2021년 11월 17일
0

알고리즘

목록 보기
68/91
post-thumbnail

문제

https://leetcode.com/problems/two-sum/

내 풀이

투포인터를 활용해서 풀어봤다.
인덱스를 반환해야하기 때문에, 튜플로 인덱스를 같이 묶어 정렬해주었다.

파이썬에서 정렬 내장함수가 팀소트로 O(n)이라고 본것같은데
투포인터로 탐색하는데도 O(n)정도 소모되니 얼추 시간복잡도는 O(n)인 풀이일것 같다

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        arr = [(num,i) for i,num in enumerate (nums)]
        
        arr.sort(key = lambda x:x[0])
        
        i,j = 0,len(arr)-1

        while (i < j):
            if arr[i][0] + arr[j][0] == target:
                return [arr[i][1],arr[j][1]]

            elif arr[i][0] + arr[j][0] > target:
                j -= 1

            else :
                i += 1

결과

profile
jooooon

0개의 댓글

관련 채용 정보