코딩테스트/기초

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));
    }
}