본문 바로가기

자료구조,알고리즘

LeetCode-1 Two Sum 파이썬 풀이

https://leetcode.com/problems/two-sum/submissions/1037103270/?envType=study-plan-v2&envId=top-interview-150 

문제

int형 배열 num가 주어졌을 때, 더했을 때 target이 되는 두 요소의 인덱스를 반환하는 문제입니다. 요소를 중복 사용하는 것은 안됩니다.

풀이

1. nums를 돌면서 target - 해당 위치의 요소 한 값과 동일한 요소가 nums에 존재하는지 찾습니다.

2. 지나간 위치는 이미 확인하여서 고려할 필요가 없으므로 현재 찾는 위치의 뒷부분의 배열에서만 찾으면 됩니다.

3. 만약 target - nums[i] 한 값과 동일한 요소를 찾았다면 해당 인덱스와 i를 반환합니다.

 

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