CodingTest/LeetCode

[LeetCode] 167. Two Sum II - Input Array Is Sorted, Medium

뜸부깅 2025. 3. 12. 12:33
반응형

1. 문제

  • 1번 인덱스를 사용하는 배열 numbers와 target이 주어질 때, 두 요소의 합이 target이 되는 인덱스를 배열에 담아 반환하라.

2. 풀이

function twoSum(numbers: number[], target: number): number[] {
    let left = 0, right = numbers.length -1;
    
    while(left < right) {
        const sum = numbers[left] + numbers[right];
        if(sum === target) break;
        
        if(sum > target) right--;
        else left++;
    }
    
    return [left+1,right+1]
};
  • 투포인터를 사용해서 양쪽에서 탐색하며, 두 합이 target보다 크면 right를 감소시키고 작으면 left를 증가시켜가며 인덱스를 찾고, 1번 인덱스를 기준으로 하므로 각 인덱스를 +1하여 배열에 담아 반환.