๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 2167_2์ฐจ์› ๋ฐฐ์—ด์˜ ํ•ฉ

๋ฟŒ์•ผ._. 2024. 3. 26. 11:52

Silver V

๋ฌธ์ œ(์ถœ์ฒ˜: https://www.acmicpc.net/problem/2167)

< 2์ฐจ์› ๋ฐฐ์—ด์˜ ํ•ฉ >

 

๋ฌธ์ œ ํ’€์ด 

 

(i, j) ์œ„์น˜๋ถ€ํ„ฐ (x, y) ์œ„์น˜๊นŒ์ง€์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ์ˆ˜๋“ค์˜ ํ•ฉ์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฏธ๋ฆฌ ๋ˆ„์ ํ•ฉ์„ ๊ตฌํ•ด๋‘”๋‹ค.

๋ˆ„์ ํ•ฉ์„ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

2๋ฒˆ์˜ ๋ˆ„์ ํ•ฉ์€ [2 = 1+2๋ฒˆ์˜ ๊ฐ’], 3๋ฒˆ์˜ ๋ˆ„์ ํ•ฉ์€ [3 = 1+3๋ฒˆ์˜ ๊ฐ’]์ด๋‹ค.

(0,0)๋ถ€ํ„ฐ (1,1)๊นŒ์ง€ ๋ˆ„์ ํ•ฉ์„ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€ [4 = 3+2-1+4๋ฒˆ์˜ ๊ฐ’]์ด๋‹ค.

๋ˆ„์ ํ•ฉ์„ ๊ตฌํ•œ ๋ฐฐ์—ด์—์„œ ๋นจ๊ฐ„ ๋ฐ•์Šค ์˜์—ญ์˜ ๋„“์ด๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€ [๋„“์ด = 12-10-4+2]์ด๋‹ค.

 

 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 _2167_ { // 2์ฐจ์› ๋ฐฐ์—ด์˜ ํ•ฉ

	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 = new StringTokenizer(bf.readLine());

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

		int arr[][] = new int[n + 1][m + 1];
		for (int i = 1; i <= n; i++) {
			st = new StringTokenizer(bf.readLine());
			for (int j = 1; j <= m; j++) {
				int num = Integer.parseInt(st.nextToken());
				arr[i][j] = arr[i - 1][j] + arr[i][j - 1] - arr[i - 1][j - 1] + num;
			}
		}

		int k = Integer.parseInt(bf.readLine());
		for (int l = 0; l < k; l++) {
			st = new StringTokenizer(bf.readLine());

			int i = Integer.parseInt(st.nextToken());
			int j = Integer.parseInt(st.nextToken());
			int x = Integer.parseInt(st.nextToken());
			int y = Integer.parseInt(st.nextToken());

			int sum = arr[x][y] - arr[i - 1][y] - arr[x][j - 1] + arr[i - 1][j - 1];
			bw.write(sum + "\n");
		}
		bw.flush();
	}
}
๋ณ€์ˆ˜)
n, m : ๋ฐฐ์—ด์˜ ํฌ๊ธฐ
arr : ๋ฐฐ์—ด์˜ ๋ˆ„์ ํ•ฉ
k : ํ•ฉ์„ ๊ตฌํ•  ๋ถ€๋ถ„์˜ ๊ฐœ์ˆ˜
i, j, x, y : ํ•ฉ์„ ๊ตฌํ•  ์˜์—ญ

 

๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค. ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋งŒํผ ๋ฐฐ์—ด์˜ ๊ฐ’์„ ์ž…๋ ฅ๋ฐ›์œผ๋ฉด์„œ ๋ˆ„์ ํ•ฉ์„ ๋ฐ”๋กœ ๊ตฌํ•œ๋‹ค. ํ•ฉ์„ ๊ตฌํ•  ๋ถ€๋ถ„์˜ ๊ฐœ์ˆ˜ k๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค. ํ•ฉ์„ ๊ตฌํ•  ์˜์—ญ i, j, x, y๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ์˜์—ญ์˜ ํ•ฉ์„ ๊ตฌํ•œ ํ›„ ์ถœ๋ ฅํ•œ๋‹ค.