정방 행렬이 있다고 가정합니다. 행렬 대각선의 합을 찾아야 합니다. 따라서 기본 대각선의 모든 요소와 보조 대각선의 모든 요소의 합계만 포함하고 교차 요소는 무시합니다.
따라서 입력이 다음과 같으면
10 | 5 | 9 | 6 |
8 | 15 | 3 | 2 |
3 | 8 | 12 | 3 |
2 | 11 | 7 | 3 |
그러면 출력은 다음과 같습니다. 기본 대각선 요소는 [10,15,12,3] 합계는 40, 보조 대각선 [6,3,8,2] 합계는 19이므로 총 합계는 59입니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
m :=행렬의 행 수
-
m이 1과 같으면
-
반환 행렬[0, 0]
-
-
개수 :=0
-
0 ~ m - 1 범위의 i에 대해 수행
-
개수 :=개수 + 행렬[i, i]
-
개수 :=개수 + 행렬[i, (-1 - i)]
-
-
m이 홀수이면
-
ind :=m/2의 몫
-
개수 :=개수 - 행렬[ind, ind]
-
-
반환 횟수
예제(파이썬)
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
def solve(matrix): m = len(matrix) if m == 1: return matrix[0][0] count = 0 for i in range(m): count += matrix[i][i] count += matrix[i][-1 - i] if m % 2 == 1: count -= matrix[m // 2][m // 2] return count matrix = [[10,5,9,6],[8,15,3,2],[3,8,12,3],[2,11,7,3],] print(solve(matrix))
입력
[[10,5,9,6],[8,15,3,2],[3,8,12,3],[2,11,7,3]]
출력
59