🔊
파이썬 알고리즘 인터뷰
책을 참고했습니다.
덧셈하여 타겟을 만들 수 있는 배열의 두 숫자 인덱스를 리턴하라
target 숫자에서 숫자 하나를 빼는 것에 해당하는 원소를 찾는 방법이다. 이는 in을 이용할 수 있기에 조금 더 빠르다.또한 딕셔너리 구조를 사용했기 때문에 O(1)
의 속도로 탐색이 가능하다.
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
for i in range(len(nums) - 1):
for j in range(i+1, len(nums)):
if target == nums[i] + nums[j]:
return [i, j]
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
for i, n in enumerate(nums):
com = target - n
if com in nums[i + 1:]:
return i, nums[i+1:].index(com) + (i + 1)
class Solution:
def twoSum(self, nums: List[int], target: 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