백준알고리즘
부분합
먼지의삶
2019. 8. 26. 00:37
#include<cstdio>
using namespace std;
int a[100001];
int main(){
int n,s;
scanf("%d %d", &n,&s);
for(int i = 0; i < n; i++){
scanf("%d", &a[i]);
}
int i = 0;
int j = 0;
int sum = a[0];
int ans = n+1;
while(i<= j && j < n)
{
if(sum < s){
j +=1;
sum += a[j];
}
else if(sum == s){
if(j-i+1 < ans){
ans = j-i+1;
}
j+=1;
sum+=a[j];
}
else if(sum >s){
if(j-i+1 < ans){
ans= j-i+1;
}
sum -= a[i];
i++;
}
}
if(ans > n) ans =0;
printf("%d\n", ans);
return 0;
}
부분합문제, 브루트포스로 풀었는데, 딱히 어렵진않았지만 문제를 잘읽어야함