[백준] 2167번 : 2차원 배열의 합 - JAVA
2024. 11. 13. 17:25 - DoosanBaek
728x90
import java.util.Scanner;
public class week01_08 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 배열의 크기 N, M 입력
int N = sc.nextInt();
int M = sc.nextInt();
// 배열 선언 및 초기화
int[][] A = new int[N + 1][M + 1];
int[][] P = new int[N + 1][M + 1];
// 배열 A 입력
for (int i = 1; i <= N; i++) {
for (int j = 1; j <= M; j++) {
A[i][j] = sc.nextInt();
}
}
// 누적 합 배열 P 생성
for (int i = 1; i <= N; i++) {
for (int j = 1; j <= M; j++) {
P[i][j] = A[i][j] + P[i-1][j] + P[i][j-1] - P[i-1][j-1];
}
}
// 합을 구할 부분의 개수 K 입력
int K = sc.nextInt();
// 주어진 부분 영역의 합 구하기
for (int k = 0; k < K; k++) {
int i = sc.nextInt();
int j = sc.nextInt();
int x = sc.nextInt();
int y = sc.nextInt();
// 부분 배열의 합 계산하여 출력
int result = P[x][y] - P[i-1][y] - P[x][j-1] + P[i-1][j-1];
System.out.println(result);
}
sc.close();
}
}
728x90
'알고리즘' 카테고리의 다른 글
| [백준] 9184번 : 신나는 함수 실행 - JAVA (0) | 2024.11.14 |
|---|---|
| [백준] 10994번 : 별 찍기 - JAVA (0) | 2024.11.14 |
| [백준] 25501번 : 재귀의 귀재 - JAVA (1) | 2024.11.14 |
| [백준] 24416번 : 알고리즘 수업 피보나치 수 1 - JAVA (0) | 2024.11.14 |
| [백준] 2018번 : 수들의 합 5 - JAVA (0) | 2024.11.13 |
| [백준] 17207번 : 돌려막기 - JAVA (0) | 2024.11.13 |
| [백준] 2477번 : 참외밭 - JAVA (0) | 2024.11.13 |
| [백준] 11945번 : 뜨거운 붕어빵 - JAVA (0) | 2024.11.13 |