Skip to content

Commit 3d9ac67

Browse files
authored
[20251105] BOJ / G4 / 직사각형과 쿼리 / 이강현
1 parent 500c170 commit 3d9ac67

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
```java
2+
import java.util.*;
3+
import java.io.*;
4+
5+
public class Main{
6+
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
7+
static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
8+
static StringBuilder sb = new StringBuilder();
9+
static StringTokenizer st;
10+
public static void main(String[] args) throws Exception {
11+
int N = Integer.parseInt(br.readLine());
12+
int[][] mat = new int[N+1][N+1];
13+
14+
for (int i = 1; i <= N; i++) {
15+
StringTokenizer st = new StringTokenizer(br.readLine());
16+
for (int j = 1; j <= N; j++) {
17+
mat[i][j] = Integer.parseInt(st.nextToken());
18+
}
19+
}
20+
21+
int[][][] sum = new int[11][N + 1][N + 1];
22+
23+
for (int k = 1; k <= 10; k++) {
24+
for (int i = 1; i <= N; i++) {
25+
for (int j = 1; j <= N; j++) {
26+
if(mat[i][j] == k) sum[k][i][j] = 1;
27+
else sum[k][i][j] = 0;
28+
29+
sum[k][i][j] += (sum[k][i-1][j] + sum[k][i][j-1] - sum[k][i-1][j-1]);
30+
}
31+
}
32+
}
33+
34+
int Q = Integer.parseInt(br.readLine());
35+
36+
for (int q = 0; q < Q; q++) {
37+
StringTokenizer st = new StringTokenizer(br.readLine());
38+
int x1 = Integer.parseInt(st.nextToken());
39+
int y1 = Integer.parseInt(st.nextToken());
40+
int x2 = Integer.parseInt(st.nextToken());
41+
int y2 = Integer.parseInt(st.nextToken());
42+
43+
int count = 0;
44+
45+
for (int k = 1; k <= 10; k++) {
46+
int result = sum[k][x2][y2] - sum[k][x1-1][y2] - sum[k][x2][y1-1] + sum[k][x1-1][y1-1];
47+
48+
if (result > 0) count++;
49+
}
50+
51+
bw.write(count + "\n");
52+
}
53+
bw.close();
54+
}
55+
}
56+
```

0 commit comments

Comments
 (0)