public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int N = scanner.nextInt();
int n = scanner.nextInt();
int[][] arr = new int[N+1][N+1];
int[][] sum = new int [N+1][N+1];
// 배열 채우기
for(int i = 1; i <= N; i++){
for(int j = 1; j <= N; j++){
arr[i][j] = scanner.nextInt();
}
}
//배열합 구하기
for(int i = 1; i <= N; i++){
for(int j = 1; j <= N; j++){
sum[i][j] = sum[i-1][j] + sum[i][j-1] + arr[i][j] - sum[i-1][j-1];
}
}
for(int i = 0; i < n; i++) {
// 이제 예시 받고 진행
int sumNum= 0;
int x1 = scanner.nextInt();
int y1 = scanner.nextInt();
int x2 = scanner.nextInt();
int y2 = scanner.nextInt();
sumNum = sum[x2][y2] - sum[x1-1][y2] - sum[x2][y1-1] + sum[x1-1][y1-1];
System.out.println(sumNum);
}
}
}
현재 보고있는 Do it 코딩테스트 : 자바편
에서는 BufferReader와 StringTokenizer를 사용하고 있었다.
선언
BufferReader buffer = new BufferReader(new InputStreamReader(System.in));
StringTokenizer token = new StringTokenizer(buffer.readLine());
int N = Integer.parseInt(st.nextToken());
for(int i = 1; i <= N; i++) {
token = new StringTokenizer(buffer.readLine());
for(int j = 1; j <= N; j++){
A[i][j] = Integer.parseInt(token.nextToken);
}
}
}
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int n = Integer.parseInt(st.nextToken());
int[][] arr = new int[N+1][N+1];
int [][] sum = new int[N+1][N+1];
// 배열 생성
for(int i = 1; i <= N; i++){
st = new StringTokenizer(br.readLine());
for(int j = 1; j <= N; j++){
arr[i][j] = Integer.parseInt(st.nextToken());
}
}
// 구간합 배열 생성
for(int i = 1; i <= N; i++){
for(int j = 1; j <= N; j++){
sum[i][j] = sum[i-1][j] + sum[i][j-1] + arr[i][j] - sum[i-1][j-1];
}
}
// test
for(int i = 0; i < n; i++){
int numSum = 0;
st = new StringTokenizer(br.readLine());
int x1 = Integer.parseInt(st.nextToken());
int y1 = Integer.parseInt(st.nextToken());
int x2 = Integer.parseInt(st.nextToken());
int y2 = Integer.parseInt(st.nextToken());
numSum = sum[x2][y2] - sum[x2][y1-1] - sum[x1-1][y2] + sum[x1-1][y1-1];
System.out.println(numSum);
}
}
}