28353 - 고양이 카페
2025. 2. 13. 21:27ㆍPS/백준
문제
https://www.acmicpc.net/problem/28353
느낀점
투포인터는 크게 두 가지 유형이 있다. 첫 번째는 정렬한 후, 양 끝에서 좁혀가는 문제이고 두 번째는 같은 포인터에서 시작해서 조건에 맞는 경우 하나씩 왼쪽 포인터에서 제외시켜주는 경우이다. 두 번째 유형인줄 알고 풀다가 첫 번째 유형이라는 것을 깨달았다... 문제를 잘 읽고 어떻게 풀지를 잘 선택하자.
풀이
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int N, K;
cin >> N >> K;
vector<int> cats(N);
for (int i = 0; i < N; i++)
{
int temp;
cin >> temp;
cats[i] = temp;
}
sort(cats.begin(), cats.end());
int cnt = 0, left = 0, right = N - 1;
while (left < right)
{
if (cats[left] + cats[right] > K)
{
right--;
}
else
{
cnt++;
right--;
left++;
}
}
cout << cnt;
return 0;
}
'PS > 백준' 카테고리의 다른 글
2003 - 수들의 합 (0) | 2025.02.14 |
---|---|
14246 - K보다 큰 구간 (0) | 2025.02.14 |
10025 - 게으른 백곰 (0) | 2025.02.13 |
30804 - 과일 탕후루 (0) | 2025.02.13 |
랭킹전 대기열 - 20006 (0) | 2025.02.13 |