Skip to content

Commit 2810722

Browse files
committed
[Silver I] Title: 구간 합 구하기 5, Time: 680 ms, Memory: 118988 KB -BaekjoonHub
1 parent fe1ba46 commit 2810722

File tree

2 files changed

+27
-41
lines changed

2 files changed

+27
-41
lines changed

백준/Silver/11660. 구간 합 구하기 5/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@
44

55
### 성능 요약
66

7-
메모리: 117340 KB, 시간: 720 ms
7+
메모리: 118988 KB, 시간: 680 ms
88

99
### 분류
1010

1111
다이나믹 프로그래밍, 누적 합
1212

1313
### 제출 일자
1414

15-
2024년 6월 1일 19:48:39
15+
2025년 12월 8일 01:10:14
1616

1717
### 문제 설명
1818

Lines changed: 25 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,41 @@
1-
import java.io.BufferedReader;
2-
import java.io.BufferedWriter;
3-
import java.io.InputStreamReader;
4-
import java.io.OutputStreamWriter;
5-
import java.util.Arrays;
6-
import java.util.StringTokenizer;
1+
import java.io.*;
2+
import java.util.*;
73

84
public class Main {
9-
10-
static int n, m;
11-
static int[][] s, info;
12-
static StringTokenizer st;
13-
static StringBuilder sb = new StringBuilder();
14-
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
15-
static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
165
public static void main(String[] args) throws Exception{
17-
input();
18-
sum();
19-
bw.append(sb);
20-
bw.flush();
21-
bw.close();
22-
}
6+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
7+
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
8+
StringBuilder sb = new StringBuilder();
9+
StringTokenizer st = new StringTokenizer(br.readLine());
2310

24-
public static void sum(){
25-
int x1, x2, y1, y2;
26-
for (int i = 0; i < m; i++) {
27-
x1 = info[i][0];
28-
y1 = info[i][1];
29-
x2 = info[i][2];
30-
y2 = info[i][3];
31-
sb.append(s[x2][y2] - s[x2][y1 - 1] - s[x1 - 1][y2] + s[x1 - 1][y1 - 1]).append("\n");
32-
}
33-
}
11+
int n, m;
12+
int[][] sum;
3413

35-
public static void input() throws Exception{
36-
st = new StringTokenizer(br.readLine());
3714
n = Integer.parseInt(st.nextToken());
3815
m = Integer.parseInt(st.nextToken());
39-
s = new int[n + 1][n + 1];
40-
info = new int[m][4];
4116

42-
for (int i = 1; i < n + 1; i++) {
17+
sum = new int[n + 1][n + 1];
18+
for(int i = 1; i < n + 1; i++){
4319
st = new StringTokenizer(br.readLine());
4420

45-
for (int j = 1; j < n + 1; j++) s[i][j] = s[i - 1][j] + s[i][j - 1] - s[i - 1][j - 1] + Integer.parseInt(st.nextToken());
21+
for(int j = 1; j < n + 1; j++){
22+
sum[i][j] = Integer.parseInt(st.nextToken());
23+
sum[i][j] += sum[i - 1][j] + sum[i][j - 1] - sum[i - 1][j - 1];
24+
}
4625
}
4726

48-
for (int i = 0; i < m; i++) {
27+
int sx, sy, ex, ey;
28+
for(int i = 0; i < m; i++){
4929
st = new StringTokenizer(br.readLine());
30+
sx = Integer.parseInt(st.nextToken());
31+
sy = Integer.parseInt(st.nextToken());
32+
ex = Integer.parseInt(st.nextToken());
33+
ey = Integer.parseInt(st.nextToken());
5034

51-
for (int j = 0; j < 4; j++) info[i][j] = Integer.parseInt(st.nextToken());
35+
sb.append(sum[ex][ey] - (sum[sx - 1][ey] + sum[ex][sy - 1]) + sum[sx - 1][sy - 1]);
36+
if(i != m - 1) sb.append("\n");
5237
}
38+
bw.append(sb);
39+
bw.close();
5340
}
54-
55-
}
41+
}

0 commit comments

Comments
 (0)