https://leetcode.com/problems/two-sum/
투포인터를 활용해서 풀어봤다.
인덱스를 반환해야하기 때문에, 튜플로 인덱스를 같이 묶어 정렬해주었다.
파이썬에서 정렬 내장함수가 팀소트로 O(n)이라고 본것같은데
투포인터로 탐색하는데도 O(n)정도 소모되니 얼추 시간복잡도는 O(n)인 풀이일것 같다
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
arr = [(num,i) for i,num in enumerate (nums)]
arr.sort(key = lambda x:x[0])
i,j = 0,len(arr)-1
while (i < j):
if arr[i][0] + arr[j][0] == target:
return [arr[i][1],arr[j][1]]
elif arr[i][0] + arr[j][0] > target:
j -= 1
else :
i += 1