Algorithm
Leetcode 2643. Row With Maximum Ones
KANG_G1
2024. 6. 10. 07:36
1이 제일 많은 행과 1의 개수를 배열로 리턴하는 문제.
1의 개수가 같은 행이 여러 개라면, 행 번호가 가장 작은 행을 선택해야 합니다.
문제 접근
행과 개수를 구하는 것이 목적이므로 해당 변수들에 값을 할당해 주면 됐습니다.
1이 포함된 행을 찾기 위해 filter 메서드를 사용했고
이전 배열의 1의 개수와 현재 배열의 1의 개수를 비교해
개수가 동일하거나, 아니면 1을 더 많이 가지고 있는 배열을
매번 비교를 통해 설정해 줄 필요가 있어 반복문을 사용했습니다.
문제 해결
/**
* @param {number[][]} mat
* @return {number[]}
*/
var rowAndMaximumOnes = function(mat) {
let count=0, row=0;
for(let i=0; i<mat.length;i++) {
const hasNumberLength = mat[i].filter((num)=> num !== 0).length;
if(count < hasNumberLength) {
count = hasNumberLength;
row = i;
}
}
return [row, count];
};