반응형
풀이
- 오름차순으로 나열된 숫자들 중 2개를 더해서 가장 0에 가깝게 만드는 문제다.
- 문제를 딱 봤는데 어디서 본문제 같다.
알고리즘 - Python / 백준 - 2467번 : 용액 (tistory.com)
- 위의 용액 문제랑 99% 똑같다.
- 다른 점이라면 답을 낼 때 , 용액은 두 수를 용액 합성하기 문제는 두 수를 더해서 출력하면 된다.
- 풀이는 전형적인 투 포인터 문제다.
- 위의 용액 문제 풀이글을 참고하자.
- 용액은 정올 문제고 용액 합성하기는 홍대 코딩 대회 문제인데 정올 문제를 참고해서 만들어진 문제인 듯하다.
import sys
n = int(sys.stdin.readline())
c = list(map(int , sys.stdin.readline().split(" ")))
fp = 0; ep = len(c)-1; mins = (10**10) + 1
check_x , check_y = 0,0
while True:
if mins == 0 or fp == ep:
break
if abs(mins) > abs(c[fp] + c[ep]):
check_x = fp
check_y = ep
mins = c[fp] + c[ep]
if c[fp] + c[ep] > 0:
ep -= 1
elif c[fp] + c[ep] < 0:
fp += 1
print(c[check_x]+c[check_y])
반응형
'코딩 > 백준' 카테고리의 다른 글
알고리즘 - Python / 백준 - 1406번 : 에디터 (0) | 2022.05.13 |
---|---|
알고리즘 - Python / 백준 - 2468번 : 안전 영역 (0) | 2022.04.22 |
알고리즘 - Python / 백준 - 1461번 : 도서관 (0) | 2022.03.16 |
알고리즘 - Python / 백준 - 13926번 : gcd(n, k) = 1 (0) | 2022.03.15 |
알고리즘 - Python / 백준 - 1990번 : 소수인팰린드롬 (0) | 2022.03.15 |