문제를 제대로 이해하지 못해서
다른 사람들의 풀이를 참고해서 문제를 풀었다.
현재 sum < S 인 경우현재 sum >= S 인 경우import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int S = Integer.parseInt(st.nextToken());
st = new StringTokenizer(br.readLine());
int[] numbers = new int[N+1];
for(int i = 0; i < N; i++) {
numbers[i] = Integer.parseInt(st.nextToken());
}
int left = 0;
int right = 0;
int sum = 0;
int minLength = Integer.MAX_VALUE;
while(left <= N && right <= N) {
if(sum >= S) {
minLength = Math.min(minLength, right - left);
sum -= numbers[left++];
}
else if(sum < S){
sum += numbers[right++];
}
}
System.out.println(minLength == Integer.MAX_VALUE? 0 : minLength);
}
}