정사각형 행렬이 있다고 가정하고 시계 반대 방향으로 90도 회전해야 합니다.
1 | 4 | 7 |
2 | 5 | 8 |
3 | 6 | 9 |
그러면 출력은
7 | 8 | 9 |
4 | 5 | 6 |
1 | 2 | 3 |
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
행렬이 비어 있으면
-
빈 목록 반환
-
-
n :=행렬의 행 수
-
행렬의 각 행에 대해 수행
-
행 반전
-
-
범위 0에서 n−1까지의 i에 대해 다음을 수행합니다.
-
범위 0에서 i−1까지의 j에 대해 수행
-
교환 행렬[i, j] 및 행렬[j, i]
-
-
-
반환 행렬
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예
class Solution: def solve(self, matrix): if not matrix or not matrix[0]: return [] n = len(matrix) for row in matrix: row.reverse() for i in range(n): for j in range(i): matrix[i][j], matrix[j][i] = matrix[j][i], matrix[i][j] return matrix ob = Solution() matrix = [ [1, 4, 7], [2, 5, 8], [3, 6, 9] ] print(ob.solve(matrix))
입력
[ [1, 4, 7], [2, 5, 8], [3, 6, 9] ]
출력
[ [7, 8, 9], [4, 5, 6], [1, 2, 3]]