덧셈하여 타겟을 만들 수 있는 배열의 두 숫자 인덱스를 리턴하라.
input : nums = [2, 7, 11, 15], target = 9
output : [0, 1]
def two_sum(nums: list[int], target: int) -> list[int]:
for i in range(len(nums)):
for j in range(i + 1, len(nums)):
if nums[i] + nums[j] == target:
return [i, j]
def two_sum2(nums: list[int], target: int) -> list[int]:
for i, n in enumerate(nums):
complement = target - n
if complement in nums[i + 1:]:
return [nums.index(n), nums[i + 1:].index(complement) + (i + 1)]
def two_sum3(nums: list[int], target: int) -> list[int]:
nums_maps = {}
# 키와 값을 바꿔서 딕셔너리로 저장
for i, num in enumerate(nums):
nums_maps[num] = i
# 타겟에서 첫 번쨰 수를 뺸 결과를 키로 조회
for i, num in enumerate(nums):
if target - num in nums_maps and i != nums_maps[target - num]:
return [i, nums_maps[target - num]]
3번쨰거 분석을 좀 더 하고 싶다.