알고리즘/코딩 테스트

[LeetCode] Two Sum

gooooooood 2020. 8. 20. 22:02
반응형

Problem)

 

Solution)

먼저 제 첫번째 솔루션 입니다.

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        for idx, value in enumerate(nums):
            if (target - value) in nums:
                if nums.index(target - value) != idx:
                    return [idx, nums.index(target - value)]

 

그보다 x20 빠른 솔루션 입니다.

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        d = {}
        for i, n in enumerate(nums):
            m = target - n
            if m in d:
                return [d[m], i]
            else:
                d[n] = i

 

시간과 메모리 효율성을 항상 고려하는 습관을 길러야겠다

반응형