2D 행렬이 있다고 가정합니다. i번째 행의 합이 i번째 열의 합과 같은지 확인해야 합니다.
따라서 입력이 다음과 같으면
2 | 3 | 4 | 5 |
10 | 6 | 4 | 2 |
1 | 4 | 6 | 7 |
1 | 5 | 6 | 7 |
첫 번째 행과 열의 합이 (2 + 3 + 4 + 5) =14이고 (2 + 10 + 1 + 1) =14이므로 출력은 True가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- row :=매트의 행 수
- col :=매트의 열 개수
- total_row :=0, total_col :=0
- 0~1행 범위의 i에 대해
- total_row :=0, total_col :=0
- 0에서 col - 1까지의 범위에 있는 j에 대해
- total_row :=total_row + mat[i, j]
- total_col :=total_col + mat[j, i]
- total_row가 total_col과 같으면
- 참 반환
- 거짓을 반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시 코드
def solve(mat): row = len(mat) col = len(mat[0]) total_row = 0 total_col = 0 for i in range(row): total_row = 0 total_col = 0 for j in range(col): total_row += mat[i][j] total_col += mat[j][i] if total_row == total_col: return True return False matrix = [ [2,3,4,5], [10,6,4,2], [1,4,6,7], [1,5,6,7] ] print(solve(matrix))
입력
[ [1,2,3,4],[9,5,3,1],
[0,3,5,6],[0,4,5,6]
]
출력
True