학습
시험

두 수의 합 1

난이도
BEGINNER

문제 설명

자연수로 이루어진 리스트 numbers와 목표값 m이 주어집니다. 리스트에 있는 서로 다른 인덱스의 두 원소를 선택하여 그 합이 m을 넘지 않으면서 m에 가장 가까운 값을 찾아 반환하는 solution 함수를 작성하시오.

예를 들어, 리스트가 [10, 20, 30, 40, 50]이고 m이 65라면, 가능한 두 수의 합은 30, 40, 50, 60, 70, 80, 90 등입니다. 이 중에서 m 이하이면서 m과 가장 가까운 합은 60입니다.


제한 사항

  • numbers의 길이는 2 이상 100 이하입니다.

  • numbers의 각 원소는 1 이상 10,000 이하의 자연수입니다.

  • m은 2 이상 20,000 이하의 자연수입니다.

  • numbers에 있는 가장 작은 두 원소의 합은 항상 m 이하입니다. (즉, 서로 다른 두 수의 합이 m이하가 되는 쌍이 적어도 1개 존재합니다.)


예시 테스트케이스 설명

테스트케이스 번호 numbers m return
1 [10, 20, 30, 40, 50] 65 60
2 [1, 3, 7, 9] 8 8
3 [100, 101, 102, 10] 205 203

1번 테스트케이스 설명

가능한 서로 다른 두 수의 합 조합 중 60이 m = 65 이하이면서 가장 가까우므로, 정답은 60입니다.

  • 10+50=6010 + 50 = 60

  • 20+40=6020 + 40 = 60

2번 테스트케이스 설명

두 수의 합은 다음과 같습니다:

  • 1+3=41 + 3 = 4

  • 1+7=81 + 7 = 8

  • 1+9=101 + 9 = 10

  • 3+7=103 + 7 = 10

  • 3+9=123 + 9 = 12

  • 7+9=167 + 9 = 16

가능한 서로 다른 두 수의 합 조합 중 8이 m = 8과 같으므로, 정답은 8입니다.

3번 테스트케이스 설명

두 수의 합은 다음과 같습니다:

  • 100+101=201100 + 101 = 201

  • 100+102=202100 + 102 = 202

  • 100+10=110100 + 10 = 110

  • 101+102=203101 + 102 = 203

  • 101+10=111101 + 10 = 111

  • 102+10=112102 + 10 = 112

가능한 서로 다른 두 수의 합 조합 중 203이 m = 205 이하이면서 가장 가까우므로, 정답은 203입니다.