In this post, you will learn a python program to rotate a matrix by 90 degrees in clockwise directions with a very simple explanation and algorithm.

So let us start learning…

## Rotate a Matrix by 90 Degrees (Clockwise)

Rotating a matrix by 90 degrees in the clockwise direction using python is a very simple task. You just have to do two simple steps, the first step is to transpose the given matrix and the second step is to reverse the rows of the transpose matrix.

Now let’s see the algorithm for the above steps

### Algorithm

1. | Define a function that takes a matrix as an input. |

2. | Transpose the matrix using the function:-> Create an empty list called .-> Iterate over the rows of the matrix (using ).-> For each row, append a list version of the row to . |

3. | Reverse the rows of the transposed matrix: -> Create an empty list called .-> Iterate over the rows of the matrix.`transposed` -> For each row, append the reversed row to . |

4. | Return the matrix.`rotated` |

From the above algorithm, we understood how to implement the python program to rotate a matrix by 90 degrees in a clockwise direction.

But before writing a program few programming concepts you have to know:

### Source Code

```
def rotate_matrix(matrix):
transposed = []
for row in zip(*matrix):
transposed.append(list(row))
rotated = []
for row in transposed:
rotated.append(row[::-1])
return rotated
# User input
rows = int(input('Enter number of rows: '))
cols = int(input('Enter number of column: '))
matrix = [[int(input(f"column {j+1} -> ENter {i+1} element:")) for j in range(cols)] for i in range(rows) ]
print() # for new line
print('Given matrix :')
# print matrix
for row in matrix:
print(row)
# calling a function
rotate_90 = rotate_matrix(matrix)
print() # for new line
print('Matrix after rotated by 90 degree')
# print rotated matrix
for row in rotate_90:
print(row)
```

### Output-1

Enter number of rows: 3 Enter number of column: 3 column 1 -> ENter 1 element:1 column 2 -> ENter 1 element:2 column 3 -> ENter 1 element:3 column 1 -> ENter 2 element:4 column 2 -> ENter 2 element:5 column 3 -> ENter 2 element:6 column 1 -> ENter 3 element:7 column 2 -> ENter 3 element:8 column 3 -> ENter 3 element:9 Given matrix : [1, 2, 3] [4, 5, 6] [7, 8, 9] Matrix after rotated by 90 degree [7, 4, 1] [8, 5, 2] [9, 6, 3] |

### Output-2

Enter number of rows: 2 Enter number of column: 2 column 1 -> ENter 1 element:1 column 2 -> ENter 1 element:2 column 1 -> ENter 2 element:3 column 2 -> ENter 2 element:4 Given matrix : [1, 2] [3, 4] Matrix after rotated by 90 degree [3, 1] [4, 2] |