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

행렬의 요소 수를 찾는 프로그램은 Python의 행 열 기준을 따릅니다.

<시간/>

이진 행렬이 있다고 가정합니다. 다음 규칙을 따르는 행렬의 요소 수를 찾아야 합니다. -

  • 행렬[r, c] =1

  • j가 c와 같지 않은 경우 모든 j에 대해 matrix[r, j] =0이고 i가 r과 같지 않은 경우 모든 i에 대해 matrix[i, c] =0입니다.

따라서 입력이 다음과 같으면

0 0 1
1 0 0
0 1 0

기준을 충족하는 셀 (0,2), (1,0) 및 (2,1)이 있으므로 출력은 3이 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • 행렬이 비어 있으면

    • 0 반환

  • row :=행렬의 모든 행 항목의 합계 목록

  • col :=행렬의 모든 열 항목의 합계 목록

  • m :=행렬의 행 수

  • n :=행렬의 열 개수

  • 해상도 :=0

  • 0 ~ m - 1 범위의 r에 대해 수행

    • 0 ~ n - 1 범위의 c에 대해 수행

      • 행렬[r, c]가 1이고 행[r]이 1이고 col[c]도 1이면

        • 해상도 :=해상도 + 1

  • 반환 해상도

예시

더 나은 이해를 위해 다음 구현을 살펴보겠습니다.

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))

입력

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

출력

3