강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

DEBURGER님의 프로필 이미지
DEBURGER

작성한 질문수

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

6. 격자판 최대합

질문드립니다.

작성

·

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)

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

굳이 따로 배열에 추가할 필요는 없어 보입니다. 

DEBURGER님의 프로필 이미지
DEBURGER

작성한 질문수

질문하기