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));
}
}
'코딩테스트 > 기초' 카테고리의 다른 글
23. 임시반장 정하기 (1) | 2024.12.14 |
---|---|
22. 봉우리 (0) | 2024.12.14 |
20. 등수구하기 (0) | 2024.12.10 |
19. 점수계산 (0) | 2024.12.10 |
18. 뒤집은 소수 (1) | 2024.12.10 |