14246 - K보다 큰 구간
2025. 2. 14. 15:09ㆍPS/백준
문제
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;
}
'PS > 백준' 카테고리의 다른 글
22857 - 가장 긴 짝수 연속한 부분 수열 (small) (0) | 2025.02.14 |
---|---|
2003 - 수들의 합 (0) | 2025.02.14 |
28353 - 고양이 카페 (2) | 2025.02.13 |
10025 - 게으른 백곰 (0) | 2025.02.13 |
30804 - 과일 탕후루 (0) | 2025.02.13 |