Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 정사각형 행렬을 시계 반대 방향으로 90도 회전하는 프로그램

<시간/>

정사각형 행렬이 있다고 가정하고 시계 반대 방향으로 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]]