https://www.acmicpc.net/problem/1253
투 포인터 문제이다.
#include <string>
#include <vector>
#include <iostream>
#include <map>
#include <algorithm>
using namespace std;
int main(void)
{
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int n;
cin >> n;
vector<int> a(n, 0);
for (int i = 0; i < n; i++) {
cin >> a[i];
}
sort(a.begin(), a.end());
int result = 0;
for (int k = 0; k < n; k++) {
long find = a[k];
int i = 0;
int j = n - 1;
while (i < j)
{
if (a[i] + a[j] == find) {
if (i != k && k != j) {
result++;
break;
}
else if (i == k) i++;
else if (j == k) j--;
}
else if (a[i] + a[j] < find) i++;
else j--;
}
}
cout << result << "\n";
return 0;
}
'콘솔창 & 윈도우창 > 코딩 테스트' 카테고리의 다른 글
프로그래머스 LV.2 점프와 순간이동 (0) | 2024.11.09 |
---|---|
프로그래머스 LV.1 예산 (0) | 2024.11.09 |
프로그래머스 LV.2 - N개의 최소공배수 (1) | 2024.11.07 |
프로그래머스 LV.2 다음 큰 숫자 (0) | 2024.11.07 |
프로그래머스 LV.1 과일 장수 (1) | 2024.11.05 |