본문 바로가기

카테고리 없음

Leetcode two sum

 

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

문제

정수 배열들이 주어지고, 더해져서 특정 타겟에 해당하는 정수로 만드는 두 개의 숫자의 인덱스들을 반환하게 된다. 각각의 입력이 정확히 하나의 해를 가질 수 있다고 가정한다. 이 때는 같은 요소를 두번 사용할 수 없게 된다.

 

풀이 방법

배열내 숫자의 의미가 주어져 있어,

 brute force를 사용한다. 요소 하나하나씩 더해보면서 target과 일치하는지 알아낸다. 이때 덧셈연산은 교환

법칙이 성립하므로 불필요한 연산이 생략될 수 있다.

 

느낀점

배열과 파이썬을 오랜만에 사용하였는데 조금 익숙해진것 같다. 그리고 이 것을 공개 repo에 기여를 하였는데 성공적인 결과를 얻었다.