Algorithm

(leetcode) two-sum

안자바먹지 2021. 1. 5. 21:36
728x90

덧셈하여 타겟을 만들 수 있는 배열의 두 숫자 인덱스를 리턴하라.

 

입력

nums = [2,7,11,15], target = 9

 

출력

[0,1]

 

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        nums_map = {}
        
        # 딕셔너리에 값을 키로 넣고 인덱스를 값으로 넣는다
        # target 에서 num을 뺀 값이 딕셔너리에 존재하면 num과 그 값을 출력하면 정답이다.
        for i, num in enumerate(nums):
            nums_map[num] = i
        
        for i, num in enumerate(nums):
            # 이 문제에선 두 숫자를 리턴해야 하므로
            # 만약 target - num이 자기 자신이라면 안되므로 조건문에서 걸러준다.
            if target - num in nums_map and i != nums_map[target - num]:
                return nums.index(num), nums_map[target - num]
            
        
728x90