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]