인프런 커뮤니티 질문&답변
질문드립니다.
작성
·
199
0
저는 하나의 배열에 추가하고 그 배열로 최대값을 구하는 로직을 사용했는데, 혹시 배열에 추가하는 과정이 코스트가 큰 로직일까요 ? 어떤식으로 하는게 가장 효율적이고 깔끔한 코드인지 궁금합니다.
let sumDiag_1 = sumDiag_2 = 0; // 대각선 합
let resultArr = [0, 0, 0, 0]; // 0 : 가로합 , 1: 세로합 , 2/3 : 대각선 합
for (let i = 0; i < arr.length; i++) {
let row = col = 0;
// 각 row,col의 합계를 구하는 반복문
for (let j = 0; j < arr.length; j++) {
row += arr[i][j];
col += arr[j][i];
}
// 최대값을 resultArr에 할당
if (resultArr[0] < row) {
resultArr[0] = row
}
if (resultArr[1] < col) {
resultArr[1] = col;
}
// 대각선의 합을 구함
sumDiag_1 += arr[i][i];
sumDiag_2 += arr[i][(arr.length - 1) - i];
}
resultArr[2] = sumDiag_1;
resultArr[3] = sumDiag_2;
// 최대값 출력
return Math.max(...resultArr)





