학습
시험

세 수의 합

난이도
BEGINNER

문제 설명

자연수로 이루어진 리스트 numbers와 목표 숫자 m이 주어집니다. numbers에서 서로 다른 인덱스의 세 원소를 골라 그 합이 m을 넘지 않으면서 m과 가장 가까운 값을 만들어야 합니다.

예를 들어, numbers = [5, 6, 7, 8, 9]이고 m =21= 21이면, (5,7,9)(5, 7, 9)의 조합이 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의 경우, 가능한 조합 중 5+7+9=215 + 7 + 9 = 21로 m과 정확히 일치하는 최대 합이 됩니다. 따라서 21을 반환합니다.

2번 테스트케이스 설명

numbers = [1, 2, 3, 4, 5], m = 10에서, 2+3+5=102 + 3 + 5 = 10이 가장 큰 m 이하의 값이므로 10을 반환합니다.

3번 테스트케이스 설명

numbers = [13, 23, 15, 42, 5], m = 35의 경우, 13+15+5=3313 + 15 + 5 = 33로 m을 넘지 않고 최대에 가장 가까운 값이 33입니다.