https://www.acmicpc.net/problem/14921
14921번: 용액 합성하기
홍익대 화학연구소는 다양한 용액을 보유하고 있다. 각 용액은 -100,000,000부터 100,000,000사이의 특성 값을 갖는데, 같은 양의 두 용액을 혼합하면, 그 특성값은 두 용액의 특성값의 합이 된다. 당신
www.acmicpc.net
풀이
투 포인터 알고리즘을 이미 학습한 사람이라면 문제없이 풀 수 있을 것이다.
투포인터 알고리즘 블로그 글:
https://sunghyun98.tistory.com/25
[알고리즘] 투 포인터
투 포인터 알고리즘은 배열에서 두 개의 포인터를 사용하여 특정 목표를 달성하기 위한 기법입니다. 일반적으로 정렬된 배열에서 특정 조건을 충족하는 요소를 찾거나 연속된 서브 배열의 합과
sunghyun98.tistory.com
코드
# 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 |