1806 - 부분합
2025. 2. 23. 23:57ㆍPS/백준
문제
https://www.acmicpc.net/problem/1806
느낀점
응용 투포인터 문제, 조건 비교에서 등호를 넣으니 풀렸고 안 넣으니 풀리지 않았는데, 그 엣지케이스를 정확하게 모르겠음.. 어쨌든 등호도 신경 써야할 것이다~~
풀이
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int N, S;
cin >> N >> S;
vector<int> arr(N);
for (int i = 0; i < N; i++)
{
cin >> arr[i];
if (arr[i] == S)
{
cout << 1;
return 0;
}
}
int left = 0, right = 1;
int minLength = 10e4;
int sum = arr[left] + arr[right];
while (left <= right)
{
if (left >= N || right >= N)
{
break;
}
if (sum < S)
{
sum += arr[++right];
}
else
{
minLength = min(minLength, right - left + 1);
sum -= arr[left++];
}
}
if (minLength == 10e4)
{
cout << 0;
}
else
{
cout << minLength;
}
return 0;
}
'PS > 백준' 카테고리의 다른 글
3151 - 합이 0 (0) | 2025.02.25 |
---|---|
24523 - 내 뒤에 나와 다른 수 (0) | 2025.02.24 |
1253 - 좋다 (0) | 2025.02.22 |
18114 - 블랙 프라이데이 (0) | 2025.02.19 |
17609 - 회문 (0) | 2025.02.18 |