하나의 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