인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

jkl1545님의 프로필 이미지
jkl1545

작성한 질문수

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

6. 격자판 최대합

코드의 효율성

작성

·

195

2

이렇게 코드를 짰는데 잘 짠 코드인지 궁금합니다.

시간복잡도는 O(n2)이 되는 것인가요 !?

function solution(arr) {
        // 각 행의 합 = row, i는 고정 j는 0~배열의 길이만큼
        // 각 열의 합 = column, j는 고정 i는 0~배열의 길이만큼
        // 대각선의 합 = cross i와 j가 같아야한다.
        // 거꾸로 대각선의 합 = reverseCross, arr.length - i - 1

        let row = new Array(arr.length).fill(0);
        let column = new Array(arr.length).fill(0);
        let cross = 0;
        let reverseCross = 0;

        for (let i = 0; i < arr.length; i++) {
          for (let j = 0; j < arr.length; j++) {
            if (i === j) {
              cross += arr[i][j];
              reverseCross += arr[i][arr.length - i - 1];
            }
            row[i] += arr[i][j];
            column[i] += arr[j][i];
          }
        }
        return Math.max(...row, ...column, cross, reverseCross);
      }

답변 1

0

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

안녕하세요^^

잘 하신 코드입니다. 

jkl1545님의 프로필 이미지
jkl1545

작성한 질문수

질문하기