728x90

문제 설명
입출력

import java.util.Scanner;

public class SumOfGrating {
    public static int solution(int n, int[][] grating) {
        int answer = Integer.MIN_VALUE;
        int sumRow, sumCol;
        for (int i = 0; i < n; i++) {
            sumRow=sumCol=0;
            for (int j = 0; j < n; j++) {
                sumRow += grating[i][j];
                sumCol += grating[j][i];
            }
            answer = Math.max(answer, sumRow);
            answer = Math.max(answer, sumCol);
        }
        int diagonalSum = 0, reverseDiagonalSum = 0;
        for (int i = 0; i < n; i++) {
            diagonalSum += grating[i][i];
            reverseDiagonalSum += grating[n - i - 1][n - i - 1];
        }
        answer = Math.max(answer, diagonalSum);
        answer = Math.max(answer, reverseDiagonalSum);
        return answer;
    }

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int[][] grating = new int[n][n];
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++) {
                grating[i][j] = in.nextInt();
            }
        }
        System.out.println(solution(n, grating));
    }
}

문제 설명

  1. 숫자 n 을 입력 받은뒤 n * n 의 2차원 배열을 만들고 각 숫자를 2차원 배열로 입력 받는다.
  2. 2중 for 문으로 row 의 합 과 column 의 합을 구한뒤 Math 의 max method 를 이용하여 제일 큰수를 answer 에 저장한다.
  3. 2개의 대각선 합을 1중 for문으로 구한뒤 마찬가지로 Math 의 max method 를 이용하여 answer 에 저장하고 return 한다.
728x90