코딩테스트/기초
21. 격자판 최대합
누리는 귀여워
2024. 12. 11. 23:41
import java.util.*;
class Main {
public int solution(int n, int[][] arr) {
// sum = 가로, 세로
int answer = 0, sum1 = 0, sum2 = 0;
for(int i = 0; i < n; i++) {
// answer에 담기고 나서 반복적으로 0으로 초기화
sum1 = sum2 = 0;
for(int j = 0; j < n; j++) {
// 가로
sum1 += arr[i][j];
// 세로
sum2 += arr[j][i];
}
// answer와 sum 중 큰 값을 answer에 담기
answer = Math.max(answer, sum1);
answer = Math.max(answer, sum2);
}
sum1 = sum2 = 0;
for(int i = 0; i < n; i++) {
// 좌상단 우하향 대각선
sum1 += arr[i][i];
// 우상단 좌하향 대각선
sum2 += arr[i][n-i-1];
}
answer = Math.max(answer, sum1);
answer = Math.max(answer, sum2);
return answer;
}
public static void main(String[] args){
Main T = new Main();
Scanner kb = new Scanner(System.in);
int n = kb.nextInt();
int[][] arr = new int[n][n];
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
arr[i][j] = kb.nextInt();
}
}
System.out.print(T.solution(n, arr));
}
}
import java.util.*;
class Main {
public int solution(int n, int[][] arr) {
int answer = 0, sum1 = 0, sum2 = 0;
for(int i = 0; i < n; i++) {
sum1 = sum2 = 0;
for(int j = 0; j < n; j++) {
sum1 += arr[i][j];
sum2 += arr[j][i];
}
answer = Math.max(answer, sum1);
answer = Math.max(answer, sum2);
}
sum1 = sum2 = 0;
for(int i = 0; i < n; i++) {
sum1 += arr[i][i];
sum2 += arr[i][n-i-1];
}
answer = Math.max(answer, sum1);
answer = Math.max(answer, sum2);
return answer;
}
public static void main(String[] args){
Main T = new Main();
Scanner kb = new Scanner(System.in);
int n = kb.nextInt();
int[][] arr = new int[n][n];
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
arr[i][j] = kb.nextInt();
}
}
System.out.print(T.solution(n, arr));
}
}