HR - Diagonal Differenece

Goody·2021년 1월 29일
0

알고리즘

목록 보기
19/122
post-custom-banner

문제

Given a square matrix, calculate the absolute difference between the sums of its diagonals.

For example, the square matrix arr is shown below:

1 2 3
4 5 6
7 8 9

The left-to-right diagonal =1+5+9 = 15 . The right to left diagonal = 3+5+9 = 17 . Their absolute difference is | 15 - 17 | = 2 .

예시

INPUT
3
11 2 4
4 5 6
10 8 -12

OUTPUT
15

풀이

  • 주어진 2차원 배열의 좌측 대각선 합과 우측 대각선 합의 차를 절대값으로 반환하는 문제이다.
  • 좌측 대각선의 원소들의 합은 arr[i][i] 를 계속해서 더하면 되므로 아주 간단하다.
  • 우측 대각선의 합은 인덱스를 따로 설정해줘서 1씩 감소시키면 될 듯 하다.

코드

function diagonalDifference(arr) {
    let leftSum = 0;
    let rightSum = 0;
    let rightIdx = arr.length-1;

    for(let i = 0; i < arr.length; i++) {
        leftSum += arr[i][i];
        rightSum += arr[i][rightIdx];
        rightIdx--;
    }
    return(Math.abs(leftSum - rightSum));
}
post-custom-banner

0개의 댓글