정방 행렬이 있다고 가정합니다. 각 행에 대해 행 반전 연산을 수행한 후 행렬이 동일하게 유지되는지 여부를 확인해야 합니다.
따라서 입력이 다음과 같으면
6 | 8 | 6 |
2 | 8 | 2 |
3 | 3 | 3 |
그러면 출력은 True
가 됩니다.이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- n :=행렬의 행 수
- 0 ~ n - 1 범위의 i에 대해
- 왼쪽 :=0, 오른쪽 :=n - 1
- 왼쪽 <=오른쪽, do
- 행렬[i, 왼쪽]이 행렬[i, 오른쪽]과 같지 않으면
- 거짓을 반환
- 왼쪽 :=왼쪽 + 1, 오른쪽 :=오른쪽 - 1
- 행렬[i, 왼쪽]이 행렬[i, 오른쪽]과 같지 않으면
- 참 반환
예시
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
def solve(matrix): n = len(matrix) for i in range(n): left = 0 right = n - 1 while left <= right: if matrix[i][left] != matrix[i][right]: return False left += 1 right -= 1 return True matrix = [ [6,8,6], [2,8,2], [3,3,3]] print(solve(matrix))
입력
[ [6,8,6], [2,8,2], [3,3,3]]
출력
True