본문 바로가기
알고리즘

[알고리즘/java] 2차원 배열 행, 열, 대각선 최대값 구하기

by drCode 2021. 9. 6.
728x90
반응형
728x90

배열의 크기 입력값 N이 주어진다.

 

배열의 값을 입력한 후,

 

행, 열, 대각선, 역대각선의 합을 구해서 최대값을 구해야 한다.

 

반응형

 

행 : arr[j][i]

열 : arr[i][j]

대각선 : arr[i][i]

역대각선 : arr[i][n-1-i]

 

입력값이 다음과 같이 주어질 때,

5
10 13 10 12 15
12 39 30 23 11
11 25 50 53 15
19 27 29 37 27
19 13 30 13 19

 

다음과 같은 결과가 나와야 한다.

155

 

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Main m = new Main();
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int[][] arr = new int[n][n];
		
		for (int i = 0; i < n; i++) {
			for (int j = 0; j < n; j++) {
				arr[i][j] = sc.nextInt();
			}
		}
		
		System.out.println(m.solution(n, arr));
	}
	
	public static int solution(int n, int[][] arr) {
		int answer = Integer.MIN_VALUE;
		int dia = 0, rev = 0;
		
		for (int i = 0; i < n; i++) {
			int row = 0, col = 0;
			for (int j = 0; j < n; j++) {
				row += arr[j][i];
				col += arr[i][j];
			}
			
			dia += arr[i][i];
			rev += arr[i][n-1-i];
			
			answer = Math.max(answer, Math.max(row, col));
		}
		
		answer = Math.max(answer, Math.max(dia, rev));
		
		return answer;
	}
}

 

728x90
반응형

댓글