학습
시험

두 수의 합 4

난이도
BEGINNER

문제 설명

오름차순으로 정렬된 일차원 정수 배열 numbers와 자연수 target이 주어졌을 때, numbers에서 인덱스가 다른 두 원소를 더한 합이 정확히 target이 되는 쌍을 오름차순으로 반환하는 solution 함수를 작성하시오.

합이 target이 되는 원소 쌍이 존재하지 않는다면 [-1,-1]을 반환합니다. 합이 target이 되는 원소 쌍이 여러 개 존재한다면 두 원소의 차가 가장 작은 원소 쌍을 반환합니다.

예를 들어, numbers가 [2, 3, 5, 6]이고 target이 8이라면, 2+6=82 + 6 = 8 또는 3+5=83 + 5 = 8이 됩니다. 이때 두 원소의 차가 작은 [3,5]가 됩니다. 반면 target이 6이면, 어떠한 두 수의 합으로도 6을 만들 수 없으므로 [-1,-1]을 반환합니다.


제한 사항

  • numbers의 길이는 2 이상 100,000 이하입니다.
  • numbers의 각 원소는 1 이상 1,000 이하의 자연수입니다.
  • numbers는 오름차순 정렬되어 있습니다.
  • target은 1 이상 2,000 이하의 자연수입니다.

예시 테스트케이스 설명

테스트케이스 번호 numbers target return
1 [2,3,5,6] 8 [3,5]
2 [2,3,5,6] 6 [-1,-1]
3 [1,1,1,1] 2 [1,1]

1번 테스트케이스 설명

  • numbers 내에서 (2,6) 또는 (3,5)를 선택해 더하면 8이 됩니다. 이때 두 원소의 차가 가장 작은 쌍을 오름차순으로 정렬하여 [3,5]를 반환합니다.

2번 테스트케이스 설명

  • numbers 배열 내 어떤 두 원소의 조합도 6을 만들 수 없으므로 [-1,-1]을 반환합니다.

3번 테스트케이스 설명

  • numbers의 원소가 모두 동일하므로, 서로 다른 인덱스의 두 원소를 어떠한 조합으로 더해도 모두 2가 됩니다.
  • 따라서, [1,1]을 반환합니다.