N * N 배열의 숫자로 된 격자판이 있을 때
각 행의 합 / 각 열의 합 / 대각선의 합 중 가장 큰 수를 출력하시오.
function solution(arr){
let max = Number.MIN_SAFE_INTEGER;
let length = arr.length; // 격자판 길이
let sum_diagonal_left = 0; // 대각선 1
let sum_diagonal_right = 0; // 대각선 2
for (let i = 0; i < length; i ++) {
let sum_row = 0;
let sum_column = 0;
for (let j = 0; j < length; j ++) {
sum_row += arr[i][j];
sum_column += arr[j][i];
if (i === j) {
sum_diagonal_left += arr[i][j]; // 왼쪽부터 시작하는 대각선
}
if (i + j === arr - 1) {
sum_diagonal_right += arr[i][j]; // 오른쪽부터 시작하는 대각선
}
}
max = Math.max(sum_row, sum_column);
}
return Math.max(max, sum_diagonal_left, sum_diagonal_right);
}

그림과 같은 격자판이 2차원 배열로 주어졌을 때
각 행/열/대각선의 합 중 최댓값을 구하는 문제였다.
행/대각선까지는 생각하기 쉬웠는데 열의 경우를 생각해내지 못했다.
(index를 역순으로 넘겨주는것)
위 내용을 잘 기억해야겠다.