Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript에서 특정 유형의 행렬 확인

<시간/>

문제

첫 번째이자 유일한 인수로 리터럴의 2차원 배열인 arr을 취하는 JavaScript 함수를 작성해야 합니다.

우리의 함수는 왼쪽 위에서 오른쪽 아래까지의 모든 대각선이 동일한 요소를 가지고 있는지 확인해야 합니다.

그렇다면 true, 그렇지 않으면 false를 반환해야 합니다.

예를 들어, 함수에 대한 입력이

인 경우

입력

const arr = [
   [6, 7, 8, 9],
   [2, 6, 7, 8],
   [1, 2, 6, 7],
];

출력

const output = true;

출력 설명

위의 배열에서 대각선은 -

[1], [2,2], [6,6,6], [7,7,7], [8,8], [9]

각 대각선에서 모든 요소는 동일하므로 정답은 참입니다.

예시

다음은 코드입니다 -

const arr = [
   [6, 7, 8, 9],
   [2, 6, 7, 8],
   [1, 2, 6, 7],
];
const checkMatrix = (arr = []) => {
   const validate = (row, col) => {
      while (
         row < arr.length
         && col < arr[0].length
         && arr[row + 1]
         && arr[row + 1][col + 1] !== undefined
      ) {
         if (arr[row + 1][col + 1] !== arr[row][col]) {
            return false
         }
         row += 1
         col += 1
      }
      return true
   }
   for (let i = 0; i < arr[0].length; i++) {
      if (!validate(0, i)) {
         return false
      }
   }
   for (let i = 0; i < arr.length; i++) {
      if (!validate(i, 0)) {
         return false
      }
   }
   return true
}
console.log(checkMatrix(arr));

출력

true