코딩테스트 문제풀이/inflearn

[인프런] Node.js / 섹션2 - 1, 2차원 탐색 / 6. 격자판 최대합

sangchu 2023. 1. 9. 23:18

N*N의 격자판이 주어지면 각 행의 합, 각 열의 합, 두 대각선의 합 중 가 장 큰 합을 출력

 

나의 풀이

function solution(arr) {
  let answer;
  let N = arr.length;
  let rowSum = 0;
  let columnSum = 0;
  let diagonalSum = 0;
  let diagonalSum2 = 0;

  for (let i = 0; i < N; i++) {
    rowSum = 0;
    columnSum = 0;
    for (let j = 0; j < N; j++) {
      rowSum += arr[i][j];
      columnSum += arr[j][i];
    }
  }
  for (let i = 0; i < N; i++) {
    diagonalSum += arr[i][i];
    diagonalSum2 += arr[i][N - 1 - i];
  }

  answer = Math.max(rowSum, columnSum, diagonalSum, diagonalSum2);
  return answer;
}

let arr = [
  [10, 13, 10, 12, 15],
  [12, 39, 30, 23, 11],
  [11, 25, 50, 53, 15],
  [19, 27, 29, 37, 27],
  [19, 13, 30, 13, 19],
];
console.log(solution(arr));