본문 바로가기
Algorithm & SQL/BAEKJOON

백준 JAVA 2003 수들의 합2

by YoonJong 2022. 8. 17.
728x90

https://www.acmicpc.net/problem/2003

 

2003번: 수들의 합 2

첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다.

www.acmicpc.net

 

 

package BAEKJOON.Silver.Ⅳ;

import java.util.Scanner;

public class NO2003_2 {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int m = sc.nextInt();

        int[] arr = new int[n];
        for (int i = 0; i < n; i++) {
            arr[i] = sc.nextInt();
        }

        int start = 0;
        int end = 0;
        int sum = 0;
        int count = 0;

        while( start < n) {
            if( sum > m || end == n) {
                sum = sum - arr[start];
                start++;
            } else {
                sum = sum + arr[end];
                end++;
            }

            if ( sum == m) {
                count++;
            }
        }
        System.out.println(count);

    }
}
728x90

댓글