def twoSum(self, nums: List[int], taregt: int) -> List[int]:
nums_map = {}
for i, num in enumerate(nums):
if target - num in nums_map:
return [nums_map[target - num], i]
nums_map[num] = i
기억해야할 기법
enumerate
test = [1,2,3]
list(enumerate(test)) # [(0, 1), (1, 2), (2, 3)]
in dict()시 key를 기준
test = {'a':1,'b':2,'c':3}
for i in test: print(i,end='') # abc
index가 필요한 경우, sort()를 사용하기 어려움
index가 섞이기 때문
중복 비교 연산을 피하는 법
새로운 리스트를 만듦
기존 리스트에서 하나씩 뽑아, 새로운 리스트의 내용과 순차 비교
원하는 값을 못찾으면 새로운 리스트에 현재 값을 append
내가 구현한 코드
from itertools import combinations
def two_sum(nums: list[int], target: int) -> list[int]:
for x, y in combinations(nums, 2):
if x + y == target:
one = nums.index(x)
nums.pop(one)
two = nums.index(y) + 1
return [one, two]