하나의 이미지를 나타내는 하나의 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의 경우
예제(파이썬)
더 나은 이해를 위해 다음 구현을 살펴보겠습니다. −
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]]