개발여행의 블로그
[leetcode]1252. Cells with Odd Values in a Matrix 본문
728x90
leetcode1252. Cells with Odd Values in a Matrix
[ 문제 풀이 ]
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
'개발 > Algorithm' 카테고리의 다른 글
[leetcode]1557. Minimum Number of Vertices to Reach All Nodes (0) | 2022.04.01 |
---|---|
[leetcode]1630. Arithmetic Subarrays (0) | 2022.03.29 |
[leetcode 821. Shortest Distance to a Character] 가장 짧은 문자거리 (0) | 2021.11.24 |
[알고리즘 javaScript] 숫자 추출 (0) | 2021.11.24 |
[알고리즘 javaScript] palindrome 팰린드롬:회문 문자열 (0) | 2021.11.24 |
Comments