728x90
반응형
https://www.acmicpc.net/problem/3273
투 포인터를 사용하여 해결할 수 있는 문제이다.
서로 다른 인덱스 2개의 값으로 만든 값이 찾고자 하는 값과 같은지 확인해야하므로
left < right 이런 식으로 작성이 되어야 한다.
나도 이분탐색처럼 left <= right이렇게 작성해서 몇 번 틀렸다
#include <iostream>
#include <queue>
#include <vector>
#include <stack>
#include <string>
#include <cstring>
#include <set>
#include <unordered_set>
#include <map>
#include <algorithm>
#include <cmath>
#define CUNLINK ios::sync_with_stdio(false), cin.tie(0), cout.tie(0)
#define ENDL cout << endl
#define ll long long
#define INF 987654321
#define Mod 1000000009
#define endl '\n'
#define pil pair<int,int>
using namespace std;
int main() {
CUNLINK;
int N, X, Cnt = 0;
cin >> N;
vector<int> v(N, 0);
for (int i = 0; i < N; i++) {
cin >> v[i];
}
cin >> X;
sort(v.begin(), v.end());
int l = 0, r = v.size() - 1;
while (l < r) {
int val = v[l] + v[r];
if (val == X) {
Cnt++;
l++;
}
else if (val < X) {
l++;
}
else {
r--;
}
}
cout << Cnt;
return 0;
}
728x90
반응형
'BOJ > 투포인터' 카테고리의 다른 글
[C/C++] 백준 - 1806번 : 부분합 (0) | 2022.03.10 |
---|---|
[C/C++] 백준 - 15961번 : 회전 초밥 (0) | 2022.01.17 |
[C/C++] 백준 - 11728번 : 배열 합치기 (0) | 2021.09.06 |
[C/C++] 백준 - 1644번 : 소수의 연속합 (0) | 2021.08.27 |
[C/C++] 백준 - 20922번 : 겹치는 건 싫어 (0) | 2021.08.26 |