본문 바로가기
Algorithm

(leetcode) two-sum

by 안자바먹지 2021. 1. 5.
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

'Algorithm' 카테고리의 다른 글

(카카오) 기둥과 보  (0) 2021.01.11
(백준) 뱀  (0) 2021.01.06
구간 합 계산 (Prefix Sum)  (0) 2021.01.05
투 포인터 (two pointer) 기법  (0) 2021.01.05
(카카오) 무지의 먹방 라이브 - javascript  (0) 2021.01.05

댓글