n = int(input())
n_list = list(map(int, input().split()))
x = int(input())
n_list.sort()
a1, a2 = 0, n-1
cnt = 0
while a1 < a2:
tmp = n_list[a1] + n_list[a2]
if tmp == x:
cnt += 1
a1 += 1
a2 -= 1
elif tmp < x:
a1 += 1
else:
a2 -= 1
print(cnt)
투 포인터 알고리즘 문제
리스트의 처음과 끝을 인덱스로 갖는 두 개의 변수를 통해 정답을 구한다.
두 인덱스의 리스트 값에 따라 인덱스를 변경하면서 정답을 구한다.