728x90
https://www.acmicpc.net/problem/2470
투포인터 문제에 꽂혀있다 !!
핵심은 left 포인터와 right 포인터가 가리키는 용액의 특성값이 0보다 작으면 left 포인터를 오른쪽으로 한칸 움직이고,
0보다 크면 right 포인터를 왼쪽으로 한칸 움직여서 0에 가깝게 만드는 것이다
투포인터 문제는 포인터를 움직일때의 기준을 찾는 것이 핵심인 것 같다
# 2470 두 용액
n = int(input())
data = list(map(int, input().split()))
data.sort()
value = int(1e9)*2
left = 0
right = n-1
idx1 = 0
idx2 = 0
while left < right:
# 절댓값이 작은 용액
if value > abs(data[left] + data[right]):
value = abs(data[left] + data[right])
idx1 = left
idx2 = right
if data[left] + data[right] < 0:
left += 1
else:
right -= 1
print(data[idx1], data[idx2])
728x90
'Algorithm (PS)' 카테고리의 다른 글
[백준] 15927 파이썬 - 회문은 회문아니야!! (0) | 2022.11.05 |
---|---|
[백준] 13022 : 늑대와 올바른 단어 Python/파이썬 풀이 (0) | 2022.11.04 |
[백준] 2615 오목 Python (0) | 2022.10.27 |
[백준] 5972 택배배송 Python (0) | 2022.10.26 |
[백준] 14503 로봇청소기 in Python (0) | 2022.10.23 |