ahribori / daily-algorithm

매일 알고리즘 문제풀자
1 stars 1 forks source link

DiagonalDifference #3

Open ahribori opened 5 years ago

ahribori commented 5 years ago

https://www.hackerrank.com/challenges/diagonal-difference/problem

n * n 형태의 정사각형 2차원 숫자 배열에서 왼쪽 대각선과 오른쪽 대각선의 합을 각각 구한뒤 각 합의 차이의 절대값을 구하는 문제

ahribori commented 5 years ago

해커랭크 input 형태가 처음 접하면 좀 이해하기 힘들게 되어있어서 삽질함. input이 1차원 배열인줄 알았더니 2차원 배열이다.

ahribori commented 5 years ago
const diagonalDifference = arr => {
  let leftToRightDiagonalSum = 0;
  let rightToLeftDiagonalSum = 0;

  for (let i = 0, rowCount = arr.length; i < rowCount; i++) {
    for (let j = 0; j < rowCount; j++) {
      if (i === j) {
        leftToRightDiagonalSum = leftToRightDiagonalSum + arr[i][j];
      }
      const reversedJ = rowCount - j - 1;
      if (i === reversedJ) {
        rightToLeftDiagonalSum = rightToLeftDiagonalSum + arr[i][j];
      }
    }
  }
  return Math.abs(leftToRightDiagonalSum - rightToLeftDiagonalSum);
};