167. Two Sum II - Input Array Is Sorted

Taesoo Kim·2023년 1월 5일
0

CrackingAlgorithm

목록 보기
7/36

167. Two Sum II - Input Array Is Sorted

또 다른 투포인터 문제. 이건 아예 패스하지 못했다..

class Solution:
    def twoSum(self, numbers: List[int], target: int) -> List[int]:
        start = 0
        sum = numbers[start]

        for end in range(1, len(numbers)):
            sum += numbers[end]
            print(sum)
            if sum > target:
                while start != end:
                    sum -= numbers[start]
                    start += 1
                    sum += numbers[start]
                    if sum == target:
                        return [start+1,end+1]
            elif sum == target:
                return [start+1,end+1]
 

end 포인터를 전진시키면서 sum이 target보다 클때만 start를 땡기는 방식을 생각했었는데, 이렇게 하는게 아닌가보다.

class Solution:
    def twoSum(self, numbers: List[int], target: int) -> List[int]:
        start = 0
        end = len(numbers) - 1

        while start < end:
            sum = numbers[start] + numbers[end]

            if sum == target:
               return [start+1,end+1]
            elif sum > target:
                end -= 1
            else:
                start += 1

투포인터 접근 방식이 아예 반대였다. 양 끝쪽에서 sum이 target보다 작으면 start를 올리고, 반대로 크면 end를 내리는 방향으로 로직을 짜는것이었다.

profile
SailingToTheMoooon

0개의 댓글