하나의 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]
- 행렬 길이가 0인 범위에 있는 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]]