(cpp) Baekjoon 3273번 문제 ‘두 수의 합’ - 정렬, 투 포인터
풀이
#코드
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int n, x,a;
vector<int> alist;
int main() {
cin >> n;
for (int i = 0; i < n; i++) {
cin >> a;
alist.push_back(a);
}
cin >> x;
sort(alist.begin(), alist.end());
int l = 0;
int r = n-1;
int cnt = 0;
while (l < r) {
if (alist[l] + alist[r] == x) {
cnt = cnt + 1;
l++;
r--;
}
else if (alist[l] + alist[r] < x) {
l++;
}
else if (alist[l] + alist[r] > x) {
r--;
}
}
cout << cnt;
}