https://www.acmicpc.net/problem/2798
문제풀이
- 완전탐색 문제여서 3중 for문을 사용해 문제를 해결했습니다
- 첫번째 카드를 i, 두번째 카드를 j, 세번째 카드를 z로 놓고 순서대로 탐색하도록 했습니다
- m과 카드의 합을 뺐을 때 값(min_sub_value)이 그 전에 저장한 min_sub_value보다 작고, 카드 합이 m보다 작을 때만 result로 저장되도록 설정했습니다
n, m = map(int, input().split())
number = list(map(int, input().split()))
max_value = 0
min_sub_value = 987654321
result = 0
for i in range(n-2):
for j in range(i+1, n-1):
for z in range(j+1, n):
max_value = number[i] + number[j] + number[z]
# print(max_value, number[i], number[j], number[z])
if min_sub_value > m - max_value and max_value <= m:
min_sub_value = m - max_value
result = max_value
# print(result)
print(result)