행렬 M이 있다고 가정하고 그것이 Toeplitz 행렬인지 여부를 확인해야 합니다. 우리가 알다시피 행렬은 왼쪽에서 오른쪽으로 내려가는 모든 대각선이 같은 값을 가질 때 Toeplitz라고 합니다.
따라서 입력이 다음과 같으면
7 | 2 | 6 |
3 | 7 | 2 |
5 | 3 | 7 |
그러면 출력이 True가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- 마지막 행을 제외한 각 행 i에 대해 다음을 수행합니다.
- 마지막 열을 제외한 각 열에 대해 다음을 수행합니다.
- 행렬[i, j]가 행렬[i+1, j+1]과 같지 않으면
- 거짓을 반환
- 행렬[i, j]가 행렬[i+1, j+1]과 같지 않으면
- 마지막 열을 제외한 각 열에 대해 다음을 수행합니다.
- 참 반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시
class Solution: def solve(self, matrix): for i in range(len(matrix)-1): for j in range(len(matrix[0])-1): if matrix[i][j]!=matrix[i+1][j+1]: return False return True ob = Solution() matrix = [ [7, 2, 6], [3, 7, 2], [5, 3, 7]] print(ob.solve(matrix))
입력
[[7, 2, 6], [3, 7, 2], [5, 3, 7]]
출력
True