3151 - 합이 0
2025. 2. 25. 13:51ㆍPS/백준
문제
https://www.acmicpc.net/problem/3151
느낀점
응용 투포인터 문제, 포인터가 하나 늘어나면 이분탐색으로 찾을 수 있다. 합이 0이 되는 조건을 생각하는 게 어려웠는데, 문제의 상황을 더 잘 이해하자
풀이
#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int N;
cin >> N;
vector<int> arr(N);
for (int i = 0; i < N; i++)
{
cin >> arr[i];
}
sort(arr.begin(), arr.end());
long long answer = 0;
for (int i = 0; i < N; i++)
{
for (int j = i + 1; j < N; j++)
{
int sum = arr[i] + arr[j];
answer +=
upper_bound(arr.begin() + j + 1, arr.end(), -sum) - lower_bound(arr.begin() + j + 1, arr.end(), -sum);
}
}
cout << answer;
return 0;
}
'PS > 백준' 카테고리의 다른 글
28066 - 타노스는 요세푸스가 밉다 (0) | 2025.02.25 |
---|---|
6137 - 문자열 생성 (0) | 2025.02.25 |
24523 - 내 뒤에 나와 다른 수 (0) | 2025.02.24 |
1806 - 부분합 (0) | 2025.02.23 |
1253 - 좋다 (0) | 2025.02.22 |