10025 - 게으른 백곰
2025. 2. 13. 16:22ㆍPS/백준
문제
https://www.acmicpc.net/problem/10025
느낀점
투 포인터 문제의 경우, 브루트포스와 같은 O(N*2)를 피하기위해 하나의 반복문만 사용한다. 그리고 인덱스가 진행됨에따라 문제의 정답을 하나씩 빼고 더하게 되는데 그것을 적용할 수 있는 부분을 문제에서 잘 찾는 게 중요하다.
풀이
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
#define pii pair<int, int>
int main()
{
int N, K;
int maxCoord = -1;
cin >> N >> K;
vector<int> iceList(1000001, 0);
for (int i = 0; i < N; i++)
{
int ice, coord;
cin >> ice >> coord;
maxCoord = max(coord, maxCoord);
iceList[coord] = ice;
}
long initAnswer = 0;
for (int i = 0; i <= 2 * K; i++)
{
if (i > maxCoord)
{
break;
}
initAnswer += iceList[i];
}
int left = 0;
long answer = initAnswer;
for (int right = 2 * K + 1; right <= maxCoord; right++)
{
initAnswer += iceList[right];
initAnswer -= iceList[left];
answer = max(answer, initAnswer);
left++;
}
cout << answer;
return 0;
}
'PS > 백준' 카테고리의 다른 글
14246 - K보다 큰 구간 (0) | 2025.02.14 |
---|---|
28353 - 고양이 카페 (2) | 2025.02.13 |
30804 - 과일 탕후루 (0) | 2025.02.13 |
랭킹전 대기열 - 20006 (0) | 2025.02.13 |
11899 - 괄호 끼워넣기 (0) | 2025.02.13 |