https://www.acmicpc.net/problem/3273
일단 딱 봤을 때,
그리디로 풀까? 싶기도 했음
왜냐면 문제가
이거임
근데 어차피 순서가 정해진 순서쌍이면 조합이잖아?
정렬해두고 앞뒤에서 하나씩 뽑으면 될 것 같았다.
그래서 그냥 바로 투포인터 이분탐색 했더니 바로 맞음!!
투포인터로 순식간에 성공한건 첨이라 뿌딧 ㅎ
실3이지만,,
뭐 이렇게 꾸준히 하다보면 늘겠지!!
#include <iostream>
#include <algorithm>
using namespace std;
int arr[100'001];
int main()
{
int n, x;
cin >> n;
for (int i = 0; i < n; i++)
cin >> arr[i];
cin >> x;
sort(arr, arr + n);
int left = 0;
int right = n - 1;
int mid = 0;
int result = 0;
while (left < right) {
mid = arr[left] + arr[right];
if (mid == x) {
result++;
left++;
}
else if (mid < x) left++;
else right--;
}
cout << result << endl;
}