
집합 U에서 세 수를 골라서 그 세 수의 합 d도 U안에 포함되는 경우 중 가장 큰 d를 구하는 문제이다.
N아 1000이고, x + y + z = k 의 공식을 변형해서 x + y = k - z 를 생각하면 시간을 줄일 수 있다.
해결언어 : Python
import sys
input = sys.stdin.readline
n = int(input())
arr = []
for _ in range(n):
arr.append(int(input()))
arr.sort(reverse=True)
s = set()
for i in range(n):
for j in range(i, n):
s.add(arr[i] + arr[j])
ans = 0
for i in range(n):
for j in range(i, n):
if arr[i] - arr[j] in s:
ans = max(ans, arr[i])
print(ans)

끝으로..
식을 변형해서 문제를 풀어봤다.