Algorithm
[Java] 백준 2167 : 2차원 배열의 합
Woogie
2023. 5. 29. 19:11
📌 문제
https://www.acmicpc.net/problem/2167
2167번: 2차원 배열의 합
첫째 줄에 배열의 크기 N, M(1 ≤ N, M ≤ 300)이 주어진다. 다음 N개의 줄에는 M개의 정수로 배열이 주어진다. 배열에 포함되어 있는 수는 절댓값이 10,000보다 작거나 같은 정수이다. 그 다음 줄에는
www.acmicpc.net
📝 풀이
- 2차원 배열 생성 & 배열에 값 저장하기
- 쿼리의 개수 입력 받기
- k 만큼 반복하면서 각각의 더한 값 출력
- 쿼리 범위 내의 값의 합 구하기
💻 소스코드
package baekjoon;
import java.util.Scanner;
// 2차원 배열의 합, S : 5
public class B2167 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int m = scanner.nextInt();
// 1)
int[][] arr = new int[n][m];
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
arr[i][j] = scanner.nextInt();
}
}
// 2)
int k = scanner.nextInt();
// 3)
for (int r = 0; r < k; r++) {
int sum = 0;
int i = scanner.nextInt();
int j = scanner.nextInt();
int x = scanner.nextInt();
int y = scanner.nextInt();
// 4)
for (int row = i - 1; row < x; row++) {
for (int col = j - 1; col < y; col++) {
sum += arr[row][col];
}
}
System.out.println(sum);
}
}
}