๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 9780_Range Sum Query

๋ฟŒ์•ผ._. 2026. 3. 23. 16:02
๋ฌธ์ œ(์ถœ์ฒ˜: https://www.acmicpc.net/problem/9780)

< Range Sum Query >

 

๋ฌธ์ œ ํ’€์ด 

 

๋ˆ„์ ํ•ฉ์„ ์‚ฌ์šฉํ•œ๋‹ค. 

 

my solution (Java)

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

public class _9780_ { // Range Sum Query

	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		StringTokenizer st;

		int t = Integer.parseInt(bf.readLine());
		long arr[];

		for (int i = 0; i < t; i++) {
			bf.readLine();

			st = new StringTokenizer(bf.readLine());

			int n = Integer.parseInt(st.nextToken());
			int q = Integer.parseInt(st.nextToken());

			arr = new long[n];
			st = new StringTokenizer(bf.readLine());
			for (int j = 0; j < n; j++) {
				arr[j] = Integer.parseInt(st.nextToken());
				if (j > 0) {
					arr[j] += arr[j - 1];
				}
			}

			for (int j = 0; j < q; j++) {
				st = new StringTokenizer(bf.readLine());
				int a = Integer.parseInt(st.nextToken());
				int b = Integer.parseInt(st.nextToken());

				if (a > 0) {
					bw.write(arr[b] - arr[a - 1] + "\n");
				} else {
					bw.write(arr[b] + "\n");
				}
			}
			bw.write("\n");
		}
		bw.flush();
	}
}
๋ณ€์ˆ˜)
t : ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ๊ฐœ์ˆ˜
arr : ๋ˆ„์ ํ•ฉ
n, q : ์ •์ˆ˜ ๊ฐœ์ˆ˜, ์ค„ ๊ฐœ์ˆ˜
a, b : ๊ตฌ๊ฐ„

 

ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ๊ฐœ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค. ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ๊ฐœ์ˆ˜๋งŒํผ ๋‹ค์Œ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ๋‹ค.

 

1) ์ •์ˆ˜ ๊ฐœ์ˆ˜, ์ค„ ๊ฐœ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค.

2) ์ •์ˆ˜ ๊ฐœ์ˆ˜๋งŒํผ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ๋ฐฐ์—ด์— ๋ˆ„์ ํ•ฉ์„ ๊ตฌํ•ด ์ €์žฅํ•œ๋‹ค.

3) ์ค„ ๊ฐœ์ˆ˜๋งŒํผ ๊ตฌ๊ฐ„์„ ์ž…๋ ฅ๋ฐ›์•„ ๊ตฌ๊ฐ„์˜ ๋ˆ„์ ํ•ฉ์„ ๊ตฌํ•ด ์ถœ๋ ฅํ•œ๋‹ค.



 

'๐ŸŒžAlgorithm > ๐Ÿ”ฅBaekjoon' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Baekjoon] 9834_Card  (0) 2026.03.25
[Baekjoon] 11270_Disastrous Downtime  (0) 2026.03.24
[Baekjoon] 18295_Ants  (0) 2026.03.19
[Baekjoon] 13243_Non-decreasing subsegment  (0) 2026.03.18
[Baekjoon] 6230_Buy One Get One Free  (0) 2026.03.16