View

λ°˜μ‘ν˜•

2003번: μˆ˜λ“€μ˜ ν•© 2

문제

N개의 수둜 된 μˆ˜μ—΄ A[1], A[2], …, A[N] 이 μžˆλ‹€. 이 μˆ˜μ—΄μ˜ i번째 μˆ˜λΆ€ν„° j번째 μˆ˜κΉŒμ§€μ˜ ν•© A[i] + A[i+1] + … + A[j-1] + A[j]κ°€ M이 λ˜λŠ” 경우의 수λ₯Ό κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.

μž…λ ₯

첫째 쀄에 N(1 ≀ N ≀ 10,000), M(1 ≀ M ≀ 300,000,000)이 주어진닀. λ‹€μŒ μ€„μ—λŠ” A[1], A[2], …, A[N]이 곡백으둜 λΆ„λ¦¬λ˜μ–΄ 주어진닀. 각각의 A[x]λŠ” 30,000을 λ„˜μ§€ μ•ŠλŠ” μžμ—°μˆ˜μ΄λ‹€.

좜λ ₯

첫째 쀄에 경우의 수λ₯Ό 좜λ ₯ν•œλ‹€.

예제 μž…λ ₯ 1

4 2
1 1 1 1

예제 좜λ ₯ 1

3


πŸ€¦β€β™€οΈ My Solution

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
    static int N, M, total;
    static int arr[];

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());

        N = Integer.parseInt(st.nextToken());
        M = Integer.parseInt(st.nextToken());
        arr = new int[N];
        st = new StringTokenizer(br.readLine());
        for (int i = 0; i < N; i++) {
            arr[i] = Integer.parseInt(st.nextToken());
        }

        total = 0;
        sum();
        System.out.println(total);
    }

    static public void sum() {

        boolean t = true;
        while (t) {
            for (int i = 0; i < N; i++) {
                if (arr[i] == M) {
                    total++;
                    continue;
                } else {
                    int sum2 = 0;
                    sum2 = arr[i];
                    for (int j = i + 1; j < N; j++) {

                        sum2 += arr[j];

                        if (sum2 > M) {
                            sum2 = 0;
                            break;
                        }
                        if (sum2 == M) {
                            total++;
                            sum2 = 0;
                            break;
                        }
                    }
                }
            }
            t = false;
        }

    }
}
λ°˜μ‘ν˜•
Share Link
reply
λ°˜μ‘ν˜•
Β«   2024/09   Β»
일 μ›” ν™” 수 λͺ© 금 ν† 
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30