코드

n, m = map(int, input().split())

card = list(map(int, input().split()))

# 나올 수 있는 수의 조합을 담을 리스트
tot = []

for i in range(n-2):
    for j in range(i+1, n-1):
        for k in range(j+1, n):
            card_tot = card[i] + card[j] + card[k]
            
            # card_tot이 m보다 크지 않을 때만 담아줌
            if m >= card_tot:
                tot.append(card_tot)

# 그 중 가장 큰 값 출력
print(max(tot))

문제 해설

모든 경우의 수를 따져야하는 브루트 포스 문제이다. for 문의 범위 설정만 유의하면 쉽게 풀 수 있는 문제.

댓글남기기