출처 | https://www.acmicpc.net/problem/2798
n,m = map(int, input().split())
list_card = list(map(int, input().split()))
result = 0
for i in range(0,n-2):
for j in range(i+1, n-1):
for k in range(j+1, n):
max_sum = list_card[i] + list_card[j] + list_card[k]
if max_sum > m:
continue
else:
result = max(result, max_sum)
print(result)
그 합이 M을 초과한다면 그냥 반복문을 계속 진행하고, M보다 작거나 같은 경우에는 그 값을 새로운 리스트에 추가하도록 했다.
그리고 반복문을 완전히 빠져나왔을때 max()함수를 이용해 가장 큰 값을 출력하도록 했다.
from itertools import combinations
n,m = map(int, input().split())
card = list(map(int, input().split()))
ans = 0
for i in combinations(card, 3):
if ans < sum(i) <= m:
ans = sum(i)
print(ans)