문제와 관련된 내용은 위의 링크에서 확인할 수 있습니다.
나의 풀이
이 문제는 특별할 것이 따로 없는, 단순한 계산문제입니다. 열의 최대값, 행의 최대값, 대각선의 값을 차례로 구한 다음에 이 값들의 최대값을 구하면 됩니다.
import java.util.Scanner;
import java.util.stream.IntStream;
class Solution {
public static void main(String args[]) throws Exception {
Scanner sc = new Scanner(System.in);
for (int test_case = 1; test_case <= 10; test_case++) {
int test_case_num = sc.nextInt();
int[][] array = new int[100][100];
for (int i = 0; i < 100; i++) {
for (int j = 0; j < 100; j++) {
array[i][j] = sc.nextInt();
}
}
int max = Math.max(Math.max(maxRow(array), maxColumn(array)), maxDiagonal(array));
System.out.println("#" + test_case_num + " " + max);
}
sc.close();
}
static int maxRow(int[][] array) {
int max = 0;
for (int[] row : array) {
int rowSum = IntStream.of(row).sum();
max = Math.max(max, rowSum);
}
return max;
}
static int maxColumn(int[][] array) {
int max = 0;
for (int i = 0; i < 100; i++) {
int columnSum = 0;
for (int j = 0; j < 100; j++) {
columnSum += array[j][i];
}
max = Math.max(max, columnSum);
}
return max;
}
static int maxDiagonal(int[][] array) {
int diagonalSumA = 0;
int diagonalSumB = 0;
for (int i = 0; i < 100; i++) {
diagonalSumA += array[i][i];
diagonalSumB += array[i][99 - i];
}
return Math.max(diagonalSumA, diagonalSumB);
}
}
'SWEA' 카테고리의 다른 글
1225. [S/W 문제해결 기본] 7일차 - 암호생성기 [D3] by Java (0) | 2023.11.17 |
---|---|
2805. 농작물 수확하기 [D3] by Java (0) | 2023.11.17 |
1240. [S/W 문제해결 응용] 1일차 - 단순 2진 암호코드 [D3] by Java (1) | 2023.11.16 |
1208. [S/W 문제해결 기본] 1일차 - Flatten [D3] by Java (0) | 2023.11.15 |
1206. [S/W 문제해결 기본] 1일차 - View [D3] by Java (0) | 2023.11.15 |