1. 문제 설명
세 용액
2. 문제 분석
용액
문제와 동일한 매커니즘. 용액 하나를 고정해두고 for
문을 통해 mid
, right
를 구해 0과 가장 가까운 조합을 answer
리스트에 기록한다.
3. 나의 풀이
import sys
n = int(sys.stdin.readline().rstrip())
numbers = list(map(int, sys.stdin.readline().rstrip().split()))
numbers.sort()
local_diff = sys.maxsize
for left in range(n-2):
mid, right = left+1, n-1
while mid < right:
diff = numbers[left] + numbers[mid] + numbers[right]
if abs(diff) < local_diff:
local_diff = abs(diff)
answer = [numbers[left], numbers[mid], numbers[right]]
if diff == 0:
print(*answer)
sys.exit(0)
elif diff > 0:
right -= 1
else:
mid += 1
print(*answer)