1. Two Sum

seo·2021년 9월 27일
0

📙LeetCode

목록 보기
1/1

문제

풀이

from typing import List

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        for i in range(len(nums)):
            if target - nums[i] in nums:
                #target이 0이고 0이 리스트 안에 있는지 확인
                if target == 0 and 0 in nums:
                    ans1 = nums.index(0)
                    nums.pop(ans1)
                    ans2 = nums.index(0) +1
                    return [ans1,ans2]
                #한 요소를 2번 쓰면 안되기때문에 현재 요소와 같다면 무시하고 다음으로 넘어간다.
                if nums.index(target -nums[i]) == i:
                    continue
                ans2 = nums.index(target-nums[i])
                ans1 = i
        #오름차순으로 출력하기 위해
        if ans1 > ans2:
            return [ans2,ans1]
        else:
            return [ans1,ans2]

target이 0인경우를 따로 처리하고 여러가지로 코드가 지저분해서 다른 방법을 찾아보았다.

다른풀이

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

0개의 댓글