Algorithm/inflearn

격자판 최대합

마닐라 2021. 9. 8. 23:12

import java.util.Scanner;

class Main {
    public int solution(int n, int[][] arr) {
        int answer = Integer.MIN_VALUE; // 제일 큰 값
        int sum1, sum2;

        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);
        }
        //대각선들의 합
        for(int i = 0; i < n; i++) {
            sum1=sum2=0;
            sum1 += arr[i][i];
            sum2 += arr[i][n-i-1];
            answer = Math.max(answer, sum1);
            answer = Math.max(answer ,sum2);
        }
        //최종적으로 answer에는 가장 큰 값이 들어가게 된다.
        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.println(T.solution(n, arr));



    }
}

'Algorithm > inflearn' 카테고리의 다른 글

★임시반장 정하기  (0) 2021.09.10
★봉우리  (0) 2021.09.10
등수구하기  (0) 2021.09.08
점수계산  (0) 2021.09.08
★뒤집은 소수  (0) 2021.09.06