문제 설명
자연수로 이루어진 리스트 numbers와 목표 숫자 m이 주어집니다. numbers에서 서로 다른 인덱스의 세 원소를 골라 그 합이 m을 넘지 않으면서 m과 가장 가까운 값을 만들어야 합니다.
예를 들어, numbers = [5, 6, 7, 8, 9]이고 m 이면, 의 조합이 21로 m과 정확히 일치하여 반환 값이 21이 됩니다.
이러한 조건을 만족하는 solution 함수를 작성하시오.
제한 사항
-
numbers의 길이는 3 이상 100 이하입니다. -
numbers의 각 원소는 1 이상 1000 이하의 자연수입니다. -
m은 1 이상 3000 이하의 자연수입니다. -
입력으로 주어지는 모든 케이스에서
m이하의 합을 만드는 세 수 조합이 적어도 한 개 이상 존재합니다.
예시 테스트케이스 설명
| 테스트케이스 번호 | numbers | m | return |
|---|---|---|---|
| 1 | [5, 6, 7, 8, 9] | 21 | 21 |
| 2 | [1, 2, 3, 4, 5] | 10 | 10 |
| 3 | [13, 23, 15, 42, 5] | 35 | 33 |
1번 테스트케이스 설명
numbers = [5, 6, 7, 8, 9], m = 21의 경우, 가능한 조합 중 로 m과 정확히 일치하는 최대 합이 됩니다. 따라서 21을 반환합니다.
2번 테스트케이스 설명
numbers = [1, 2, 3, 4, 5], m = 10에서, 이 가장 큰 m 이하의 값이므로 10을 반환합니다.
3번 테스트케이스 설명
numbers = [13, 23, 15, 42, 5], m = 35의 경우, 로 m을 넘지 않고 최대에 가장 가까운 값이 33입니다.