https://www.acmicpc.net/problem/2295
N = int(input())
U = []
for i in range(N):
U.append(int(input()))
U.sort()
check = True
ans = 0
while check:
check_num = U.pop() # 큰 수부터 추출
for i in range(len(U)):
left = i
right = len(U)-1
while left <= right:
sum = U[i]+U[left]+U[right]
if sum<check_num:
left+=1
elif sum>check_num:
right-=1
else:
ans = check_num
check = False
break
print(ans)
투포인터의 변형 문제이다.
세개의 포인터를 선택해야하고, 중복이 가능하므로 조건을 살짝 변경해서 풀었다.