정렬 후 투포인터로 풀면 됩니다.
import sys
input = sys.stdin.readline
N = int(input())
M = int(input())
arr = sorted(map(int, input().split()))
left = 0
right = N - 1
answer = 0
while left < right:
num = arr[left] + arr[right]
if num == M:
answer += 1
left += 1
right -= 1
elif num > M:
right -= 1
else:
left += 1
print(answer)
'practivceAlgorithm > 백준' 카테고리의 다른 글
[백준][Python] 2146 다리만들기 (0) | 2021.10.13 |
---|---|
[백준][Python] 2667 단지번호붙이기 : union-find 풀이 (0) | 2021.10.13 |
[백준][Python] 1895 필터 (0) | 2021.10.08 |
[백준][Python] 2474 세 용액 (1) | 2021.10.07 |
[백준][Python] 1595 북쪽나라의 도로 : 함수 재활용 시 반환값에 주의 (0) | 2021.10.07 |