백준공부/java

[백준] 1806번 부분합 (gold 4

gomduri43 2023. 12. 20. 15:06

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st=new StringTokenizer(br.readLine());
        int n=Integer.valueOf(st.nextToken());
        int m=Integer.valueOf(st.nextToken());

        int[] num=new int[n];
        st=new StringTokenizer(br.readLine());
        for(int i=0; i<n; i++){
            num[i]=Integer.valueOf(st.nextToken());
        }

        int sum=num[0];
        int count=1;
        int left=0;
        int min=Integer.MAX_VALUE;
        for(int i=1; i<n+1; ){
            if(sum>=m && left<i){
                min=Math.min(min,count);
                sum-=num[left];
                left++;
                count--;
            }
            else if(sum<=m && i<n){
                sum+=num[i];
                count++;
                i++;
            }
            else{
                break;
            }
        }
        bw.write(min==Integer.MAX_VALUE ? "0" : min+"");
        bw.flush();

    }
}