ALGORITHM ๐Ÿค–/Baekjoon

๋ฐฑ์ค€ - 2003

daxx0ne 2023. 4. 6. 18:18

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

import java.util.*;

public class Main {
    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]; // ์ˆ˜์—ด์„ ๋‹ด์„ ๋ฐฐ์—ด
        int count = 0;
        for(int i = 0; i < n; i++){
            arr[i] = sc.nextInt();
        }
        for(int i = 0; i < n; i++){
            int sum = arr[i];
            if(arr[i] == m){ // i๋ฒˆ์งธ ์ˆ˜๋ถ€ํ„ฐ j๋ฒˆ์งธ ์ˆ˜๊นŒ์ง€ ํ•ฉ์ด ์•„๋‹Œ ์ž๊ธฐ ์ž์‹ ์ด m์ผ๋•Œ
                count++;
            }
            for(int j = i + 1; j < n; j++){ 
                sum += arr[j];
                if(sum == m){ // i๋ฒˆ์งธ ์ˆ˜๋ถ€ํ„ฐ j๋ฒˆ์งธ ์ˆ˜๊นŒ์ง€ ํ•ฉ์ด m์ผ๋•Œ
                    count++;
                    break;
                }
                else if(sum > m){ // ํ•ฉ์ด m๋ณด๋‹ค ์ปค์ง€๋ฉด ๋” ์ฐพ์•„๋ณผ ์ด์œ ๊ฐ€ ์—†์œผ๋ฏ€๋กœ break
                    break;
                }
            }
        }
        System.out.println(count);
    }
}