728x90
https://www.acmicpc.net/problem/2295
import sys
# N개의 자연수 중 x, y, z 3개의 수를 뽑아서 x+y+z인 d가 N개의 포함되는 경우 중 가장 큰 d를 찾아라
# x+y+z=d > x+y=d-z
input = sys.stdin.readline
res = 0 #가장 큰 D
N = int(input())
arr = [int(input()) for _ in range(N)]
arr.sort()
arr2 = list()
for i in range(N):
for j in range(i, N):
arr2.append(arr[i] + arr[j])
arr2.sort()
#print(arr2)
for i in range(N):
for j in range(i, N):
num = arr[j] - arr[i] #x+y 찾기
start = 0
end = len(arr2) - 1
while start <= end:
mid = (start + end) // 2
if num > arr2[mid]:
start = mid + 1
elif num < arr2[mid]:
end = mid - 1
else:
res = max(res, arr[j])
break
print(res)
728x90
'Study > Coding Test' 카테고리의 다른 글
[프로그래머스] 네트워크 Python, C++ (0) | 2023.07.31 |
---|---|
[백준] 15486 - 퇴사 2 Python (0) | 2023.07.07 |
[백준] 14940 - 쉬운 최단거리 Python (0) | 2023.07.04 |
[백준] 1940 - 연속합 Python (0) | 2023.06.29 |
[백준] 11660 - 구간 합 구하기 5 Python (0) | 2023.06.28 |