https://www.acmicpc.net/problem/14921
풀이
투 포인터 알고리즘을 이미 학습한 사람이라면 문제없이 풀 수 있을 것이다.
투포인터 알고리즘 블로그 글:
https://sunghyun98.tistory.com/25
코드
# 14921번 용액 합성하기
# 투포인터 사용.
import sys
n = int(input())
liquid = list(map(int, input().split()))
min_sumOfLiquid = sys.maxsize
ans = 0
if n == 2:
print(sum(liquid))
else:
start, end = 0, n-1
while start < end:
sumOfLiquid = liquid[start] + liquid[end]
if abs(sumOfLiquid) < min_sumOfLiquid:
min_sumOfLiquid = abs(sumOfLiquid)
ans = sumOfLiquid
if sumOfLiquid > 0:
end -= 1
else:
start += 1
if sumOfLiquid == 0:
ans = 0
break
print(ans)
출력결과
'백준 > 투 포인터' 카테고리의 다른 글
[백준][Python] 1253번 좋다 - 코팩 (0) | 2023.08.20 |
---|---|
[백준][Python] 3649번 로봇 프로젝트 - 코팩 (0) | 2023.08.11 |
[백준][Python] 2473번 세 용액 - 코팩 (0) | 2023.08.10 |
[백준][Python] 2470번 두 용액 - 코팩 (0) | 2023.08.09 |
[백준][Python] 2467번 용액 - 코팩 (0) | 2023.08.09 |