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

Python에서 행렬 회전

<시간/>

하나의 n x n 2D 행렬이 있다고 가정합니다. 이 행렬을 시계 방향으로 90도 회전해야 합니다. 따라서 행렬이 다음과 같으면-

1 5 7
9 6 3
2 1 3

그러면 출력은

2 9 1
1 6 5
3 3 7

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • temp_mat =[], col :=행렬의 길이 – 1을 고려하십시오.
  • 0부터 행렬의 길이까지의 범위에 있는 col의 경우
    • 온도 :=[]
    • 행렬 길이 범위의 행 - 1에서 -1까지
      • temp에 행렬[row, col] 추가
    • temp_mat에 온도 추가
  • 행렬 길이가 0인 범위에 있는 i의 경우
    • 행렬 길이가 0인 범위에 있는 j의 경우
      • 행렬[i, j] :=temp_mat[i, j]

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

예제 코드(Python)

class Solution(object):
   def rotate(self, matrix):
      temp_matrix = []
      column = len(matrix)-1
      for column in range(len(matrix)):
         temp = []
         for row in range(len(matrix)-1,-1,-1):
            temp.append(matrix[row][column])
         temp_matrix.append(temp)
      for i in range(len(matrix)):
         for j in range(len(matrix)):
            matrix[i][j] = temp_matrix[i][j]
      return matrix

ob1 = Solution()
print(ob1.rotate([[1,5,7],[9,6,3],[2,1,3]]))

입력

[[1,5,7],[9,6,3],[2,1,3]]

출력

[[2, 9, 1], [1, 6, 5], [3, 3, 7]]