[JAVA] ๊ตฌ๊ฐ„ ํ•ฉ ๊ตฌํ•˜๊ธฐ (๋ฐฑ์ค€ 11659๋ฒˆ, ๋ฐฑ์ค€ 2042๋ฒˆ)

2025. 5. 17. 00:47ยทโ˜•Java

๊ตฌ๊ฐ„ ํ•ฉ

ํ•ฉ ๋ฐฐ์—ด์„ ์ด์šฉํ•˜์—ฌ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๋” ์ค„์ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ํŠน์ˆ˜ํ•œ ๋ชฉ์ ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค.

 

์–ด๋– ํ•œ ๋ฐฐ์—ด์ด ์žˆ์„ ๋•Œ, ๊ทธ ๋ฐฐ์—ด ์ค‘ ํŠน์ • ๋ฒ”์œ„์— ์žˆ๋Š” ์›์†Œ ๊ฐ’๋“ค์˜ ํ•ฉ์„ ๊ตฌ๊ฐ„ ํ•ฉ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์‰ฝ๊ฒŒ ๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ™œ์šฉํ•˜๋ ค๋ฉด ํ•ฉ ๋ฐฐ์—ด์„ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. 

 

ํ•ฉ ๋ฐฐ์—ด S์˜ ์ •์˜

๋ฐฐ์—ด A๊ฐ€ ์žˆ์„ ๋•Œ ํ•ฉ ๋ฐฐ์—ด S๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

S[i] = A[0] + A[1] + A[2] + ... + A[i-1] + A[i] // A[0]๋ถ€ํ„ฐ A[i]๊นŒ์ง€์˜ ํ•ฉ

 

S[4]๋Š” A[0]๋ถ€ํ„ฐ A[4]๊นŒ์ง€ ๋”ํ•œ ํ•ฉ์ธ๊ฑฐ์ฃ .

ํ•ฉ ๋ฐฐ์—ด์€ ๊ธฐ์กด์˜ ๋ฐฐ์—ด์„ ์ „์ฒ˜๋ฆฌํ•œ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•ฉ ๋ฐฐ์—ด์„ ๋ฏธ๋ฆฌ ๊ตฌํ•ด๋†“์œผ๋ฉด ๊ธฐ์กด ๋ฐฐ์—ด์˜ ์ผ์ • ๋ฒ”์œ„์˜ ํ•ฉ์„ ๊ตฌํ•˜๋Š” ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ O(N)์—์„œ O(1)๋กœ ๊ฐ์†Œํ•ฉ๋‹ˆ๋‹ค.

 

์œ„ ๊ทธ๋ฆผ์—์„œ S[4] = A[0] + A[1] + A[2] + A[3] + A[4] = 15 + 13 + 10 + 7 + 3 =48์ž…๋‹ˆ๋‹ค.

 

ํ•ฉ ๋ฐฐ์—ด์— S์˜ ๊ฐ ์›์†Œ๋ฅผ ๊ตฌํ•  ๋•Œ ๋งค๋ฒˆ ๋‹ค์‹œ A[0] + ... A[i]๋ฅผ ํ•˜๊ธฐ๋ณด๋‹ค๋Š” ์‰ฌ์šด ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ”๋กœ ์ด์ „์— ๊ตฌํ•œ S[i-1]์— A[i]๋ฅผ ๋”ํ•˜๋Š” ๊ฑฐ์ฃ .

 

๐Ÿ“Œ ํ•ฉ ๋ฐฐ์—ด ๊ณต์‹

S[i] = S[i-1] + A[i]

 

์•„๋ž˜ ๊ทธ๋ฆผ์—์„œ S๋ฅผ ์ฐจ๋ก€๋Œ€๋กœ ๊ตฌํ•ด๋ณด๋ฉด ์‰ฝ๊ฒŒ ์ดํ•ด๊ฐ€ ๊ฐˆ ๊ฒ๋‹ˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ 0๋ฒˆ์งธ ์ธ๋ฑ์Šค๋ถ€ํ„ฐ ์–ด๋А ์ธ๋ฑ์Šค๊นŒ์ง€์˜ ํ•ฉ์€ ํ•ฉ ๋ฐฐ์—ด๋กœ ๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด 0๋ฒˆ์งธ๊ฐ€ ์•„๋‹Œ i๋ถ€ํ„ฐ j๊นŒ์ง€์˜ ๊ตฌ๊ฐ„ ํ•ฉ์€ ์–ด๋–ป๊ฒŒ ๊ตฌํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”?

 

ํ•ฉ ๋ฐฐ์—ด์„ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ ๊ตฌ๊ฐ„ ํ•ฉ์„ ๊ตฌํ•˜๋Š” ๊ณต์‹

S[j] - S[i-1] // i์—์„œ j๊นŒ์ง€ ๊ตฌ๊ฐ„ ํ•ฉ

 

  A[2]๋ถ€ํ„ฐ A[4]๊นŒ์ง€์˜ ํ•ฉ์„ ๊ตฌํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, S[4] - S[1] = 28 - 9 = 19๋ผ๊ณ  ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ด์ œ ์ด๊ฑธ ์ด์šฉํ•ด ๋ฐฑ์ค€ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ณด์ž.

 

11659๋ฒˆ

 ์ˆ˜ N๊ฐœ๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, i๋ฒˆ์งธ ์ˆ˜๋ถ€ํ„ฐ j๋ฒˆ์งธ ์ˆ˜๊นŒ์ง€ ํ•ฉ์„ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

  • ์ž…๋ ฅ: ์ฒซ์งธ ์ค„์— ์ˆ˜์˜ ๊ฐœ์ˆ˜ N๊ณผ ํ•ฉ์„ ๊ตฌํ•ด์•ผ ํ•˜๋Š” ํšŸ์ˆ˜ M์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” N๊ฐœ์˜ ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.์ˆ˜๋Š” 1,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค. ์…‹์งธ ์ค„๋ถ€ํ„ฐ M๊ฐœ์˜ ์ค„์—๋Š” ํ•ฉ์„ ๊ตฌํ•ด์•ผ ํ•˜๋Š” ๊ตฌ๊ฐ„ i์™€ j๊ฐ€ ๊ตฌํ•ด์ง„๋‹ค.
  • ์ถœ๋ ฅ: ์ด M๊ฐœ์˜ ์ค„์— ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„ i๋ฒˆ์งธ ์ˆ˜๋ถ€ํ„ฐ j๋ฒˆ์งธ ์ˆ˜๊นŒ์ง€ ํ•ฉ์„ ์ถœ๋ ฅํ•œ๋‹ค.
import java.util.*;

class Main {
 public static void main(String[] args) {
  Scanner s = new Scanner(System.in);
  
  int N = s.nextInt();
  int M = s.nextInt();
  // ๊ตฌ๊ฐ„ ํ•ฉ ๊ตฌํ•˜๊ธฐ
  int[] sum = new int[N + 1];
  for (int i = 1; i <= N; i++) {
            sum[i] = sum[i - 1] + s.nextInt(); // ๋ˆ„์ ํ•ฉ
        }
 
  // M๋ฒˆ ๋™์•ˆ ์ž…๋ ฅ ๋ฐ›๋Š” ๋™์•ˆ ์ถœ๋ ฅํ•˜๊ธฐ
  for (int m = 0; m < M; m++) {
            int i = s.nextInt();
            int j = s.nextInt();
            System.out.println(sum[j] - sum[i - 1]);
        }
 }
}

 

 

BufferReader์™€ StringTokenizer๋ฅผ ์ด์šฉํ•ด ๋” ๋นจ๋ฆฌ ๊ตฌํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฑด ํ•˜๋ฃจ์ฝ”๋”ฉ๋‹˜์˜ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

import java.io.*;

class Main {
	public static void main(String[] args) throws IoException {
    	BufferedReader bufferedReader = new BufferdReader(new InputStreamReader(System.in));
        StringTokenizer stringTokenizer = new StringTokenizer(bufferedReader.readLine());
        
        int N = Integer.parseInt(stringTokenizer.nextToken());
        int M = Integer.parseInt(stringTokenizer.nextToken());
        
        long[] s = new long[N+1];
        stringTokenizer = new StringTokenizer(bufferedReader.readLine());
        for(int i=1;i<N+1;i++) { 
         s[i] = s[i-1] + Integer.parseInt(stringTokenizer.nextToken());
        }
        
        for(int m=0;m<M;m++) {
        	stringTokenizer = new StringTokenizer(bufferedReader.readLine());
            int i = Integer.parseInt(stringTokenizer.nextToken());
            int j = Integer.parseInt(stringTokenizer.nextToken());
            System.out.println(s[j]-s[i-1]);
        }
    }
}

 

ํ•˜๋ฃจ์ฝ”๋”ฉ๋‹˜์˜ "Do it! ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธJAVAํŽธ ๊ฐ•์˜ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

 

 

๋ฐ˜์‘ํ˜•

'โ˜•Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[JAVA] ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ (๋ฐฑ์ค€ 12891๋ฒˆ)  (1) 2025.05.22
[JAVA] ํˆฌ ํฌ์ธํ„ฐ (๋ฐฑ์ค€ 2018๋ฒˆ, ๋ฐฑ์ค€ 1940๋ฒˆ)  (3) 2025.05.18
[JAVA] ๋ฐฐ์—ด๊ณผ ๋ฆฌ์ŠคํŠธ: ์ˆซ์ž์˜ ํ•ฉ ๊ตฌํ•˜๊ธฐ(๋ฐฑ์ค€ 11720)  (3) 2025.05.14
[์ž๋ฃŒ๊ตฌ์กฐ][Java] HashSet ์ค‘๋ณต ์ œ๊ฑฐ ๋™์ž‘ ์›๋ฆฌ: HashSet์€ ์–ด๋–ป๊ฒŒ ์ค‘๋ณต์„ ํ™•์ธํ•˜๋‚˜์š”?  (0) 2025.02.13
[Java] ์ŠคํŠธ๋ฆผ Stream ๊ฐœ๋…๊ณผ Stream API ์ด์ •๋ฆฌ  (2) 2025.02.13
'โ˜•Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [JAVA] ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ (๋ฐฑ์ค€ 12891๋ฒˆ)
  • [JAVA] ํˆฌ ํฌ์ธํ„ฐ (๋ฐฑ์ค€ 2018๋ฒˆ, ๋ฐฑ์ค€ 1940๋ฒˆ)
  • [JAVA] ๋ฐฐ์—ด๊ณผ ๋ฆฌ์ŠคํŠธ: ์ˆซ์ž์˜ ํ•ฉ ๊ตฌํ•˜๊ธฐ(๋ฐฑ์ค€ 11720)
  • [์ž๋ฃŒ๊ตฌ์กฐ][Java] HashSet ์ค‘๋ณต ์ œ๊ฑฐ ๋™์ž‘ ์›๋ฆฌ: HashSet์€ ์–ด๋–ป๊ฒŒ ์ค‘๋ณต์„ ํ™•์ธํ•˜๋‚˜์š”?
์†Œ์˜ ๐Ÿ€
์†Œ์˜ ๐Ÿ€
Hello World โœจ
  • ์†Œ์˜ ๐Ÿ€
    Soyoung's Dev Lab
    ์†Œ์˜ ๐Ÿ€
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
  • ๊ธ€์“ฐ๊ธฐ ๊ด€๋ฆฌ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (42)
      • ๐Ÿ“ข ๊ฒŒ์‹œํŒ (0)
      • ๐Ÿ“š ์ž๋ฃŒ๊ตฌ์กฐ & ์•Œ๊ณ ๋ฆฌ์ฆ˜ (1)
      • ๐ŸŒฟSpring (15)
      • โ˜•Java (7)
      • ๐Ÿ“Š ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (3)
      • ๐Ÿ“ค ๋ฐฐํฌ (4)
      • โš™๏ธ ๊ธฐํƒ€ ๊ฐœ๋ฐœ ์ž๋ฃŒ (10)
      • ๐Ÿ–ฅ๏ธ ํ”„๋กœ์ ํŠธ (0)
      • ๐Ÿ‘ฉ‍๐Ÿ’ป ํ™œ๋™ & ํ›„๊ธฐ (0)
      • ๐Ÿต ์ด์•ผ๊ธฐ (2)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํƒœ๊ทธ
  • ๋งํฌ

    • github
    • velog
  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ๋ฐฐํฌ
    Spring
    ์•Œ๊ณ ๋ฆฌ์ฆ˜
    Spring Security
    Java
    ์œ„ํด๋ฆฌ ํŽ˜์ดํผ
    ๊ฐœ๋ฐœ
    docker
    ์ฝ”๋”ฉํ…Œ์ŠคํŠธ
    ์ž๋ฃŒ๊ตฌ์กฐ
    ์ฝ”๋“œ์ž‡ ์Šคํ”„๋ฆฐํŠธ
    ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
    ๊ฐ์ฒด์ง€ํ–ฅํ”„๋กœ๊ทธ๋ž˜๋ฐ
    GIT
    ์„œ๋ฒ„
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
์†Œ์˜ ๐Ÿ€
[JAVA] ๊ตฌ๊ฐ„ ํ•ฉ ๊ตฌํ•˜๊ธฐ (๋ฐฑ์ค€ 11659๋ฒˆ, ๋ฐฑ์ค€ 2042๋ฒˆ)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”