본문 바로가기
Algorithm

[LeetCode] 알고리즘 문제 Two Sum

by jyee 2023. 9. 4.
728x90
반응형
아래 문제는 LeetCode에서 제공하는 문제입니다. 

 

 

#문제 

 

문제가 영어로 나옵니다. 언젠가는 해외취업을 할 수 있지 않을까라는 희망때문에,, 미래 대비해봅니다.

영어로 대충 읽고 해석해서 풀 수도 있지만 저는 chatgpt에게 냉큼 달려가 해석을 요청했습니다.

그래서 얻어 온 해석본:

 

주어진 정수 배열 nums와 정수 target이 주어졌을 때, 이 배열에서 두 숫자를 선택하여 그 합이 target이 되는 경우의 인덱스를 반환하는 문제입니다. 이때, 같은 요소를 두 번 사용할 수 없으며, 답은 어떤 순서로든 반환할 수 있습니다.

각 예시에 대한 설명은 다음과 같습니다:

예시 1:

  • Input: nums = [2,7,11,15], target = 9
  • Output: [0,1]
  • 해설: nums[0] + nums[1]은 2 + 7으로 9가 되므로, 이 경우에는 인덱스 0과 1을 반환합니다.

예시 2:

  • Input: nums = [3,2,4], target = 6
  • Output: [1,2]
  • 해설: nums[1] + nums[2]는 2 + 4로 6이 되므로, 이 경우에는 인덱스 1과 2를 반환합니다.

예시 3:

  • Input: nums = [3,3], target = 6
  • Output: [0,1]
  • 해설: nums[0] + nums[1]은 둘 다 3으로 6이 되므로, 이 경우에는 인덱스 0과 1을 반환합니다.

문제의 제약 조건은 다음과 같습니다:

  • 배열 nums의 길이는 2 이상 10,000 이하입니다.
  • nums 배열의 각 요소는 -10^9 이상 10^9 이하의 정수입니다.
  • target은 -10^9 이상 10^9 이하의 정수로 주어집니다.
  • 정확히 하나의 유효한 답이 존재합니다

대강 문제는 이해했는데 어떻게 해결해야할지 전혀 몰라서 인강으로 듣고 해결했습니다....

분명 인강 듣고는 이해했었는데 왜 다시 보니깐 리셋되는 느낌이죠?

수학문제 푸는 것 마냥 해답보면 이해되는데 다시 풀려니 모르겠어요!!

 

서론이 기네요 답은 이러합니다.

파이썬을 이용한 답입니다. 

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        output = []
        for i in range(len(nums)):
            i_val = nums[i]
            for j in range(1, len(nums)):
                j_val = nums[j]
                if i == j:
                    break
                if i_val + j_val == target:
                    output.append(i)
                    output.append(j)
                    return output

 

 

728x90
반응형