작성
·
171
1
안녕하세요. 좋은 강의 잘듣고 있습니다. 대각선의 합을 구할때 따로 for문으로 빼신걸 고쳐보았는데 로직 검증 한번 부탁드리겠습니다.
function solution(arr) {
let answer = Number.MIN_SAFE_INTEGER; // 가장 작은 값 설정
let n = arr.length;
let columnSum = 0;
let rowSum = 0;
let firstDiagonalSum = 0;
let secondDiagonalSum = 0;
for (let i = 0; i < n; i++) {
columnSum = rowSum = 0; // 0으로 초기화
for (let j = 0; j < n; j++) {
columnSum += arr[i][j]; // column 합
rowSum += arr[j][i]; // row 합
}
answer = Math.max(answer, columnSum, rowSum);
firstDiagonalSum += arr[i][i]; // 첫번째 대각선 합
secondDiagonalSum += arr[i][n - i - 1]; // 두번째 대각선 합
if (i === n - 1) {
answer = Math.max(answer, firstDiagonalSum, secondDiagonalSum);
}
}
return answer;
}