# Program to find number of elements in matrix follows row column criteria in Python

PythonServer Side ProgrammingProgramming

#### Beyond Basic Programming - Intermediate Python

Most Popular

36 Lectures 3 hours

#### Practical Machine Learning using Python

Best Seller

91 Lectures 23.5 hours

#### Practical Data Science using Python

22 Lectures 6 hours

Suppose we have a binary matrix; we have to find the number of elements in matrix that follows the following rules −

• matrix[r, c] = 1

• matrix[r, j] = 0 for every j when j is not equal to c and matrix[i, c] = 0 for every i when i is not equal to r.

So, if the input is like

 0 0 1 1 0 0 0 1 0

then the output will be 3, because we have cells (0,2), (1,0) and (2,1) those meet the criteria.

To solve this, we will follow these steps −

• if matrix is empty, then

• return 0

• row := a list of sum of all row entries in matrix

• col := a list of sum of all column entries in matrix

• m := row count of matrix

• n := column count of matrix

• res := 0

• for r in range 0 to m - 1, do

• for c in range 0 to n - 1, do

• if matrix[r, c] is 1 and row[r] is 1 and col[c] is also 1, then

• res := res + 1

• return res

## Example

Let us see the following implementation to get better understanding

def solve(matrix):
if not matrix:
return 0

row = [sum(r) for r in matrix]
col = [sum(c) for c in zip(*matrix)]

m, n = len(matrix), len(matrix[0])
res = 0
for r in range(m):
for c in range(n):
if matrix[r][c] == 1 and row[r] == 1 and col[c] == 1:
res += 1
return res

matrix = [
[0, 0, 1],
[1, 0, 0],
[0, 1, 0]
]
print(solve(matrix))

## Input

[[0, 0, 1],[1, 0, 0],[0, 1, 0]]


## Output

3
Updated on 11-Oct-2021 07:56:54