개발여행의 블로그

[leetcode]1252. Cells with Odd Values in a Matrix 본문

개발/Algorithm

[leetcode]1252. Cells with Odd Values in a Matrix

개발 여행 2022. 3. 28. 11:13
728x90

leetcode1252. Cells with Odd Values in a Matrix 

 

Cells with Odd Values in a Matrix - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

 

[ 문제 풀이 ]

m(row의 수), n(cell의 수)와 2D array(indices)가 주어질 때,

m * n 행렬에서 각 indices[i] = [ri, ci]가 행렬에서 일부 증가 연산을 수행하기 위한 인덱스 위치를 나타내는 배열을 활용하여 인덱스의 모든 위치에 증가 연산을 한 후 행렬에서 홀수 값의 cell 수를 반환해야 한다.

 

각각의 indices[i]는 아래를 모두 수행한다.

1. ri row의 모든 cell을 증가시킨다.

2. ci column의 모든 cell을 증가시킨다.

 

 

[ 코드 ]

/**
 * @param {number} m
 * @param {number} n
 * @param {number[][]} indices
 * @return {number}
 */
const oddCells = function (row, col, indices) {
  const matrix = Array.from(Array(row), () => Array(col).fill(0));

  for (let i = 0; i < indices.length; i++) {
    const [r, c] = indices[i];

    for (let j = 0; j < matrix[r].length; j++) {
      matrix[r][j] += 1;
    }

    for (let k = 0; k < matrix.length; k++) {
      matrix[k][c] += 1;
    }
  }

  const result = matrix.reduce(
    (result, current) =>
      result +
      current.reduce((sum, cell) => {
        return cell % 2 !== 0 ? sum + 1 : sum;
      }, 0),
    0
  );

  return result;
};

2차원 배열에서 홀수의 개수를 카운트 하기 위해 reduce 안에 reduce를 사용하였다.

728x90
Comments