Algorithm/BOJ

[BOJ]2467 - 용액 (Python)

꾸지새미언니 2022. 9. 3. 19:46

문제 

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

코드 

import sys
input = lambda : sys.stdin.readline().strip()

n = int(input())
arr = list(map(int, input().split()))
min_n = sys.maxsize
ans_s, ans_e = 0, len(arr)-1

s, e = 0, len(arr)-1

while s < e:
    summ = arr[s] + arr[e]

    if abs(summ) < min_n:
        min_n = abs(summ)
        ans_s = s
        ans_e = e

    if summ > 0:
        e -= 1
    elif summ < 0:
        s += 1
    else:
        break

print(arr[ans_s], arr[ans_e])

풀이 

이분탐색을 활용해서 푸는 문제였다. 

0에 가장 가까운 숫자를 찾는 문제였기 때문에 절대값을 씌우고 최솟값을 찾아냈다.