문제 설명

정사각 행렬이 주어지면 대각선의 합 사이의 절대 차이를 계산합니다. 예를 들어, 정사각형 행렬 배열은 다음과 같습니다.

1 2 3
4 5 6
9 8 9  

왼쪽에서 오른쪽 대각선 = 1 + 5 + 9 = 15입니다. 오른쪽에서 왼쪽 대각선 = 3 + 5 + 9 = 17이다. 이들의 절대차는 |15 - 17| = 2다.

함수 설명

아래 편집기에서 diagonalDifference 함수를 완성하십시오.
대각선차이는 다음 매개변수를 사용합니다.

  • int arr[n][m]: 정수 배열

출력

  • int: 절대 대각선 차이

입력 형식

첫 번째 줄에는 정방 행렬 arr의 행과 열의 개수인 단일 정수 n이 포함됩니다.
다음 n줄은 행 arr[i]를 나타내며 공백으로 구분된 정수 arr[i][j]로 구성되어 있다.

제약

-100 <= arr[i][j] <= 100

출력 형식

행렬의 두 대각선의 합 사이의 절대 차이를 단일 정수로 반환합니다.

입력 예시

3
11 2 4
4 5 6
10 8 -12

출력 예시

15

설명

기본 대각선은 다음과 같다.

11
  5
    -12

기본 대각선의 합: 11 + 5 - 12 = 4
보조 대각선은 다음과 같다.

4
  5
    10

보조 대각선의 합: 4 + 5 + 10 = 19
차이: |4 - 19| = 15
참고: |x|는 x의 절대값입니다.

답안

나의 풀이

function diagonalDifference(arr) {
    const sum = { left: 0, right: 0 };
    const lineLen  = arr.length;

    for(let idx = 0; idx < lineLen; idx++) {
        sum.left += newArr[idx][idx];
        sum.right += newArr[idx][lineLen - 1 - idx];
    }
    
    return Math.abs(sum.left - sum.right);
}

이중 배열이지만 이중 반복문을 사용하지 않고,
index가 왼쪽 줄은 0부터 1씩 증가하고 오른쪽 줄은 끝에서부터 1씩 감소하기 때문에
반복문의 index를 활용하여 구현