[파이썬][백준 2470][💛골드 5] 두 용액 (투포인터)

Date:     Updated:

Categories:

Tags:

🧞‍♂️ 난이도

💛 골드 5


🧞‍♂️ 문제

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

image


🧞‍♂️ 내 풀이

전형적인 정석 투포인터로 풀면 된다. 정렬을 시키고나서, 양끝을 더해서 왼쪽을 좁힐지 오른쪽을 좁힐지 판단하면서 풀어나가면 된다.


🧞‍♂️ 파이썬 코드

N = int(input())
nums = sorted(list(map(int, input().split())))
start, end = 0, N-1
answer_start, answer_end = start, end
total = abs(nums[start] + nums[end])

while start < end:
    temp = nums[start] + nums[end]
    if abs(temp) < total:
        answer_start, answer_end = start, end
        total = abs(temp)
        if total == 0:
            break
    if temp > 0:
        end -= 1
    else:
        start += 1
print(nums[answer_start])
print(nums[answer_end])


맨 위로 이동하기

BOJ 카테고리 내 다른 글 보러가기