[백준 3273] 두 수의 합

Junyoung Park·2022년 3월 20일
0

코딩테스트

목록 보기
292/631
post-thumbnail

1. 문제 설명

두 수의 합

2. 문제 분석

정렬 -> 이분 탐색으로 두 포인터를 통해 합계를 x와 비교한다. x보다 크다면 right 커서를 줄이고 x보다 작다면 left 커서를 늘려야 한다.

3. 나의 풀이

import sys

n = int(sys.stdin.readline().rstrip())
numbers = list(map(int, sys.stdin.readline().rstrip().split()))
numbers.sort()
x = int(sys.stdin.readline().rstrip())

left, right = 0, n-1
cnt = 0
while left < right:
    sum = numbers[left] + numbers[right]
    if sum > x:
        right -= 1
    elif sum == x:
        cnt += 1
        right -= 1
    else:
        left += 1
print(cnt)
profile
JUST DO IT

0개의 댓글