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

파이썬에서 행렬에서 Z 모양을 형성하는 요소의 합을 찾는 프로그램

<시간/>

하나의 n x n 행렬 M이 있다고 가정하고 행렬에서 Z 모양을 형성하는 모든 요소의 합을 찾아야 합니다.

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

4 3 2
9 1 8
2 5 6

요소가 [4+3+2+1+2+5+6] =23이므로 출력은 23이 됩니다.

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

  • n :=행렬의 행 수
  • n <=2이면
    • 행렬에 있는 모든 요소의 합계 반환
  • first_row :=첫 번째 행의 합계
  • last_row :=마지막 행의 합계
  • 대각선 =1에서 n-2까지의 모든 i에 대한 행렬[i, n-1-i]의 합
  • first_row + last_row + 대각선 반환

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

class Solution:
   def solve(self, matrix):
      n = len(matrix)
      if n <= 2:
         return sum(sum(row) for row in matrix) first_row = sum(matrix[0])
      last_row = sum(matrix[n-1])
      diagonal = sum(matrix[i][n-1-i] for i in range(1, n-1))
      return first_row + last_row + diagonal
ob = Solution()
matrix = [ [4, 3, 2], [9, 1, 8], [2, 5, 6] ]
print(ob.solve(matrix))

입력

matrix = [[4, 3, 2],
[9, 1, 8],
[2, 5, 6]]

출력

23