2023. 7. 11. 12:00ㆍAlgorithm/JAVA
import java.util.Scanner;
public class testClass {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int num = in.nextInt();
int [][]arr = new int[num][num];
for(int i = 0 ; i < num; i++) {
for(int j = 0 ; j < num; j++) {
arr[i][j]=in.nextInt();
}
}
solution(arr);
}
public static void solution(int [][] num) {
int lineMaxSum=0, rowMaxSum=0;
int []lineSum = new int[num.length];
int []rowSum = new int[num.length];
int Dig1Sum=0, Dig2Sum = 0;
int firstIndex = 0;
int lastIndex = num.length-1;
for(int i = 0 ; i < num.length; i++) {
for(int j = 0 ; j <num.length; j++) {
//행의 합
lineSum[i] += num[i][j];
rowSum[j] += num[i][j];
//첫번째 대각선의 합. i == j인경우 sum
if(i == j) {
Dig1Sum +=num[i][j];
}
//두번째 대각선의 합. 2차원 배열의 firstIndex와 lastIndex를 지정함
if(firstIndex == i && lastIndex == j) {
Dig2Sum+=num[i][j];
firstIndex++;
lastIndex--;
}
}
}
for(int i = 0 ; i < num.length; i ++) {
//행의 최대값 구함
if(lineSum[i] > lineMaxSum) {
lineMaxSum = lineSum[i];
}
//열의 최대값 구함
if(rowSum[i] > rowMaxSum) {
rowMaxSum = rowSum[i];
}
}
int maxNum = Math.max(lineMaxSum, rowMaxSum);
maxNum = Math.max(maxNum, Dig1Sum);
maxNum = Math.max(maxNum, Dig2Sum);
System.out.println(maxNum);
}
}
'Algorithm > JAVA' 카테고리의 다른 글
[Algorithm /프로그래머스] 시저 암호 (0) | 2023.07.31 |
---|---|
[Algorithm /프로그래머스] 같은 숫자는 싫어 (0) | 2023.07.18 |
[Algorithm /프로그래머스] 하샤드 수 (0) | 2023.07.16 |
[Algorithm /인프런] 봉우리 (0) | 2023.07.14 |
[Algorithm /프로그래머스] A로 B 만들기 (0) | 2023.07.12 |