Skip to content

Commit 3fae48e

Browse files
authored
[20250211] BOJ / 골드5 / 5549 / 설진영 #78
1 parent 50229ed commit 3fae48e

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
```java
2+
import java.io.BufferedReader;
3+
import java.io.IOException;
4+
import java.io.InputStreamReader;
5+
import java.util.StringTokenizer;
6+
7+
public class Main {
8+
public static void main(String[] args) throws IOException {
9+
10+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
11+
StringTokenizer st = new StringTokenizer(br.readLine());
12+
13+
int M = nextInt(st);
14+
int N = nextInt(st);
15+
int[][][] dp = new int[M+1][N+1][3];
16+
17+
int K = Integer.parseInt(br.readLine());
18+
19+
for (int i = 1; i < M + 1; i++) {
20+
String input = br.readLine();
21+
for (int j = 1; j < N + 1; j++) {
22+
char target = input.charAt(j - 1);
23+
// J O I
24+
int idx = target == 'J' ? 0 : (target == 'O' ? 1 : 2);
25+
26+
dp[i][j][0] = dp[i-1][j][0] + dp[i][j-1][0] - dp[i-1][j-1][0];
27+
dp[i][j][1] = dp[i-1][j][1] + dp[i][j-1][1] - dp[i-1][j-1][1];
28+
dp[i][j][2] = dp[i-1][j][2] + dp[i][j-1][2] - dp[i-1][j-1][2];
29+
30+
dp[i][j][idx]++;
31+
}
32+
}
33+
34+
for (int i = 0; i < K; i++) {
35+
st = new StringTokenizer(br.readLine());
36+
37+
int x1 = nextInt(st);
38+
int y1 = nextInt(st);
39+
int x2 = nextInt(st);
40+
int y2 = nextInt(st);
41+
42+
for(int j = 0; j < 3; j++) {
43+
System.out.print(dp[x2][y2][j] - dp[x1-1][y2][j] - dp[x2][y1-1][j] + dp[x1-1][y1-1][j] + " ");
44+
}
45+
System.out.println();
46+
}
47+
48+
49+
}
50+
private static int nextInt(StringTokenizer st) {
51+
return Integer.parseInt(st.nextToken());
52+
}
53+
}
54+
```

0 commit comments

Comments
 (0)