티스토리 뷰

반응형

문제

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

 

입력 예제

[[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]]

 

 

출력 예제

155

 

 

 

 

풀이

function solution(arr) {
  let answer = Number.MIN_SAFE_INTEGER;
  let n = arr.length;
  let sum1 = sum2 = 0;

  // 행, 열
  for (let i = 0; i < n; i++) {
    sum1 = sum2 = 0; // 초기화
    for (let j = 0; j < n; j++) {
      sum1 += arr[i][j];
      sum2 += arr[j][i];
    } 
    answer = Math.max(answer, sum1, sum2);
  }

  sum1 = sum2 = 0; // 초기화

  // 두 대각선
  for (let i = 0; i < n; i++) {
    sum1 += arr[i][i];
    sum2 += arr[i][n-i-1];
  }

  answer = Math.max(answer, sum1, sum2);

  return answer;
}

 

 

반응형
반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31