leetcode

최대 1 분 소요

3부 선형구조

07. 두 수의 합

    1. Two Sum
  • https://leetcode.com/problems/two-sum/

덧셈하여 타겟을 만들 수 있는 배열의 두 숫자 인덱스를 리턴하라.

  • 입력 nums[0] + nums[1] = 2 + 7 = 9

  • 출력 [0, 1]

  • 설명 nums[0] + nums[1] = 2 + 7 = 9 따라서 0, 1을 리턴한다.

풀이01. 브루트포스로 계산

def twoSum(self, nums: List[int], target: int) -> List[int]:
  for i in range(len(nums)):
    for j in range(i + 1, len(nums)):
      if nums[j] + nums[j] == target:
        return [i, j]

풀이02. in을 이용한 탐색

def twoSum(self, 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)]

풀이03. 첫번째 수를 뺀 결과 키 조회

def twoSum(self, nums: List[int], target: int) -> List[int]:
  nums_map = {}
  # 키와 값을 바꿔서 딕셔너리로 저장
  for i, num in enumerate(nums):
    nums_map[num] = i

  # 타겟에서 첫 번째 수를 뺀 결과를 키로 조회
  for i, num in enumerate(nums):
    if target - num in nums_map and i != nums_map[target - num]:
      return [i, nums_map[target - num]]

카테고리:

업데이트:

댓글남기기