여니의 취준 준비/코딩테스트 (Python)

[n14921] 용액 합성하기 in python

여니's 2021. 9. 2. 23:38

https://www.acmicpc.net/problem/14921

 

14921번: 용액 합성하기

홍익대 화학연구소는 다양한 용액을 보유하고 있다.  각 용액은 -100,000,000부터 100,000,000사이의 특성 값을 갖는데, 같은 양의 두 용액을 혼합하면, 그 특성값은 두 용액의 특성값의 합이 된다. 당

www.acmicpc.net


(처음 든 생각)

dp를 이용해서 푸는 문젠가했는데

그건 아닌 것 같았다.

 

 

 

min을 이용해서 0에 가까운 숫자를 찾으면 되는데,

위 링크에 나와있는 예제2번을 풀 때 양수로 출력되는 문제가 발생했다.

따라서 if abs(result) > abs(now) 구문을 넣어주고,

result에는 원래의 값만을 집어넣었다.


(풀이)

import sys

n = int(sys.stdin.readline().rstrip())
array = list(map(int, sys.stdin.readline().rstrip().split()))

left = 0
right = n - 1

result = 100000000 #1e9

while left < right:
    now = array[left] + array[right]
    if now == 0:
        print(0)
        break

    if now > 0:
        right -= 1
        if abs(result)>abs(now):
            result=now
            continue
        continue

    left += 1
    if abs(result)>abs(now):
        result=now

print(result)