최대 1 분 소요

1. 문제Permalink

1. Two Sum

Easy


Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target.

You may assume that each input would have exactly one solution, and you may not use the same element twice.

You can return the answer in any order.

 

Example 1:

Input: nums = [2,7,11,15], target = 9
Output: [0,1]
Explanation: Because nums[0] + nums[1] == 9, we return [0, 1].

Example 2:

Input: nums = [3,2,4], target = 6
Output: [1,2]

Example 3:

Input: nums = [3,3], target = 6
Output: [0,1]

 

Constraints:

  • 2 <= nums.length <= 104
  • -109 <= nums[i] <= 109
  • -109 <= target <= 109
  • Only one valid answer exists.

 

Follow-up: Can you come up with an algorithm that is less than O(n2time complexity?

출처: Leetcode, https://leetcode.com/

2. 해결방법 시간복잡도Permalink

  1. 단순 코딩 O(N^2)

3. 문제 해결 및 코드Permalink


class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
result = []
for i in range(len(nums)):
# nums 리스트 0부터 비교
for j in range(i+1, len(nums)):
# 이중반복문으로 해당 위치와 다음 위치를 동시에 비교
if nums[i] + nums[j] == target:
# 만약 2개값을 더한게 타겟값과 같다면
result.append(i)
result.append(j)
return result
view raw 1.py hosted with ❤ by GitHub
  • 주석을 참고하면서 이해를 돕습니다.Permalink

4. 알고리즘 및 해설Permalink

  1. 이중 반복문을 통해 해당 리스트와 다음 값을 더한 것이 목표값과 같다면 해당 두 위치값을 리스트에 넣는다.
  2. 리스트를 출력한다.