PS/백준
14246 - K보다 큰 구간
Mingi Kim
2025. 2. 14. 15:09
문제
https://www.acmicpc.net/problem/14246
느낀점
로직 자체는 간단했는데 이래저래 뻘짓을 많이 한 거 같다.. 투포인터는 등호에 따라서 결과가 많이 바뀌기 때문에 잘 신경써줘야할 듯.. 그리고 이 문제는 타입으로 장난쳤는데, 그 부분은 별로였다..
풀이
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int n;
cin >> n;
vector<int> numList(n + 1, 0);
for (int i = 0; i < n; i++)
{
int temp;
cin >> temp;
numList[i] = temp;
}
long long k;
cin >> k;
int start = 0, end = 0;
long long sum = 0, cnt = 0;
while (true)
{
if (sum <= k)
{
sum += numList[end++];
if (end > n)
{
break;
}
}
else
{
cnt += n - end + 1;
sum -= numList[start++];
if (start > n)
{
break;
}
}
}
cout << cnt;
return 0;
}