💡 조건
- 각 행, 각 열, 각 대각선의 합 중 가장 큰 값 구하기
✍🏻 로직 구현
- 행, 열, 대각선의 각각의 합을 구한다
- Math.max() 를 이용하여 최대값을 구한다.
- (1,1) (1,2) (1,3) (1,4) (1,5)
(2,1) (2,2) (2,3) (2,4) (2,5)
(3,1) (3,2) (3,3) (3,4) (3,5)
(4,1) (4,2) (4,3) (4,4) (4,5)
(5,1) (5,2) (5,3) (5,4) (5,5)
📘 코드
function result(arr) {
let answer = Number.MIN_SAFE_INTEGER; // 임의로 최솟값으로 지정
let n = arr.length;
let sum1 = sum2 = 0;
for (let i = 0; i < arr.length; i++) {
sum1 = sum2 = 0; // 초기화 ( 각 배열을 순회하며 합을 구하므로, 초기 값을 설정해주어야 한다. )
for (let j = 0; j < arr.length; j++) {
sum1 += arr[i][j]; // row
sum2 += arr[j][i]; // col
}
answer = Math.max(answer, sum1, sum2);
}
sum1 = sum2 = 0; // 초기화
for (let i = 0; i < n; i++) {
sum1 += arr[i][i]; // 대각선1
sum2 += arr[i][n-i-1]; // 대각선2
}
answer = Math.max(answer, sum1, sum2);
return answer;
};
let arr = [
[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],
];
console.log(result(arr)); // 155