[백준] 2295번: 세 수의 합

CodingJoker·2024년 10월 21일

백준

목록 보기
36/70

문제

백준 - 2295번: 세 수의 합

분석

집합 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)

끝으로..

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

profile
어제보다 지식 1g 쌓기

0개의 댓글