9. 격자판 최대합
5*5 격자판에 숫자가 적혀있습니다. N x N의 격자판이 주어지면 각 행의 합, 각 열의 합, 두 대각선의 합 중 가 장 큰 합을 출력합니다.
첫 줄에 자연수 N이 주어진다.(2<=N<=50) 두 번째 줄부터 N줄에 걸쳐 각 줄에 N개의 자연수가 주어진다. 각 자연수는 100을 넘지 않는다.
최대합을 출력합니다.
===================================================
열,행,대각선 각각의 합을 구한 후 Math.max(a,b)를 이용하여 서로 비교한 다음 가장 큰 값을 반환하여 답을 구한다.
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public int solution(int n,int[][] array ) {
int answer=-1;
int sum1=0;
int sum2=0;
for(int i=0;i<n;i++) {
sum1=0;
sum2=0;
for(int j=0;j<n;j++) {
sum1+=array[i][j];
sum2+=array[j][i];
}
answer=Math.max(answer, sum1);
answer=Math.max(answer, sum1);
}
sum1=0;
sum2=0;
for(int i=0;i<n;i++) {
sum1+=array[i][i];
sum2+=array[i][n-1-i];
}
answer=Math.max(answer, sum1);
answer=Math.max(answer, sum1);
return answer;
}
public static void main(String[] args) {
Main main = new Main();
Scanner scan = new Scanner(System.in);
int number=scan.nextInt();
int [][] array=new int[number][number];
for(int i=0;i<number;i++) {
for(int j=0;j<number;j++)
array[i][j]=scan.nextInt();
}
System.out.println(main.solution(number,array));
}
}
1)가장 큰 값 구하기