문제
해결 과정
- 배열에서 중복없이 3개를 뽑는
combinations
를 구현
- 그 3개의 배열의
sum
이 m
보다 작거나 같으면서 가장 가까운 maximum
을 구한다.
시행착오
풀이
import sys
n,m = map(int,sys.stdin.readline().split())
array = list(map(int,sys.stdin.readline().split()))
def combinations(array,n):
result = []
if n == 0:
return [[]]
for i in range(len(array)):
elem = array[i]
for rest in combinations(array[i+1:],n-1):
result.append([elem] + rest)
return result
maximum = 0
for i in combinations(array,3):
if sum(i) <= m and sum(i) > maximum:
maximum = sum(i)
print(maximum)