๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

[ํžŒํŠธ ๋ฌธ์ œ3-3] ์ˆ˜๋“ค์˜ ํ•ฉ2

์‹œํ๋ฆฌํ‹ฐ์ง€ํ˜ธ 2023. 10. 6.

๋ฐฑ์ค€ 2003๋ฒˆ

 

๋ฌธ์ œ

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

์˜ˆ์ œ ์ž…๋ ฅ 2 

10 5
1 2 3 4 2 5 3 1 1 2

์˜ˆ์ œ ์ถœ๋ ฅ 2 

3

 

 

<<ํ’€์ด>>

 

package sec01.hint3_1;

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

public class pjh_numberssum {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str1 = br.readLine();
        StringTokenizer st1 = new StringTokenizer(str1);
        int ans = 0;

        int N = Integer.parseInt(st1.nextToken());
        int M = Integer.parseInt(st1.nextToken());

        System.out.println("๋‹ค์Œ ๋ฒˆ ์งธ ์ค„์„ ์ž…๋ ฅํ•˜๋ผ");

        String str2 = br.readLine();
        StringTokenizer st2 = new StringTokenizer(str2);
        int[] A = new int[N];

        for (int i = 0; i < N; i++) {
            A[i] = Integer.parseInt(st2.nextToken());
        }

        for (int i = 0; i < N; i++) {
            int partsum = 0;
            int totalsum = 0;
            if (A[i] == M) {
                ans++;
            }
            for (int j = i+1; j < N; j++) {
                partsum += A[j];
                totalsum = A[i] + partsum;
                if (totalsum == M) {
                    ans++;
                }


            }
        }
        System.out.println(ans);
    }
}

 

๋ฌธ์ œ ์ž์ฒด๋Š” ์–ด๋ ต์ง€ ์•Š๋‹ค. ๋‹ค๋งŒ, ๋ฌธ์ œ๋ฅผ ์ฝ์„ ๋•Œ ์ดํ•ดํ•˜๊ธฐ๊ฐ€ ์•„์ง ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ์กฐ๊ธˆ ๋” ์ต์ˆ™ํ•ด์งˆ ํ•„์š”๊ฐ€ ์žˆ๋‹ค.

๋˜ํ•œ, ๋ฌธ์ œ๋ฅผ ํ’€ ๋•Œ ์–ด๋ ต๋‹ค๋ฉด ๊ฐ€๋งŒํžˆ ๋ฉ๋•Œ๋ฆฌ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋‚ด๊ฐ€ ๋ฌด์—‡์„ ๋ชจ๋ฅด๋Š”์ง€ ์ •ํ™•ํ•˜๊ฒŒ ํŒŒ์•…ํ•˜๋Š” ๋ฉ”ํƒ€์ธ์ง€ ๋Šฅ๋ ฅ์„ ๊ธฐ๋ฅผ ํ•„์š”๊ฐ€ ์žˆ๋‹ค.

๊ทธ๋ ‡๊ฒŒ ํ•˜๋‹ˆ ํ›จ์”ฌ ๋” ๋ชฐ์ž…ํ•˜๊ณ  ๋จธ๋ฆฌ๊ฐ€ ์ž˜ ๋Œ์•„๊ฐ„๋‹ค.

 

๋Œ“๊ธ€