twoSum 함수에 숫자배열과 '특정 수'를 인자로 넘기면,
더해서 '특정 수'가 나오는 index를 배열에 담아 return해 주세요.
def two_sum(nums, target):
x = []
y = []
for i in nums:
for j in nums:
if i+j == target:
x.append(i)
x.append(j)
y.append(nums.index(x[0]))
y.append(nums.index(x[1]))
return y
중첩 루프는 효율이 좋지 않으므로, 사용을 지양
def two_sum(nums, target):
index_map = {}
for i in range(len(nums)):
num = nums[i]
pair = target - num
if pair in index_map:
return [index_map[pair], i]
index_map[num] = i
return None
딕셔너리를 사용하고 target 과 num 의 차를 index_map 안 에서 구하는 방법을 쓰면 루프 한 번으로 답을 구할 수 있다.