LeetCode #2 (구현) - Two Sum

ims·2021년 6월 17일
0

LeetCode

목록 보기
2/6
post-custom-banner

📌 문제

arr = [1,3,7,192,23]

target = 193

배열과 target number가 주어질 때, 해당 target을 만들어 줄 수 있는 배열의 두 요소의 index를 반환하라.

[0,3]

📌 아이디어

Brute Force로 O(n^2)으로 풀 수 있지만, 이건 답이 아니다.
hash를 사용해서 O(n) 으로 풀 수 있다.

먼저 모든 값을 Hash에 넣는다. 이후 배열을 순회하면서 key값에 target-i의 값이 있는지 확인한다.
있다면 해당 배열의 index 값을 return 한다.

📌 코드

class Solution:
    def twoSum(self,nums,target):
        hash_map = dict()
        for index,value in enumerate(nums):
            hash_map[value]=index
        result =[]
        for i in range(len(nums)):
            if target-nums[i] in hash_map:
                result.append(i)
                result.append(hash_map[target-nums[i]])
                return result

a = Solution()
two_sum = a.twoSum([2, 7, 11, 15], 9)
print(two_sum)
profile
티스토리로 이사했습니다! https://imsfromseoul.tistory.com/ + https://camel-man-ims.tistory.com/
post-custom-banner

0개의 댓글