 Open in App
Not now

# Python3 Program to Modify a matrix by rotating ith row exactly i times in clockwise direction

• Last Updated : 30 May, 2022

Given a matrix mat[][] of dimensions M * N, the task is to print the matrix obtained after rotating every ith row of the matrix i times in a clockwise direction.

Examples:

Input: mat[][] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}
Output:
1 2 3
6 4 5
8 9 7
Explanation:
The 0th row is rotated 0 times. Therefore, the 0th row remains the same as {1, 2, 3}.
The 1st row is rotated 1 times. Therefore, the 1st row modifies to {6, 4, 5}.
The 2nd row is rotated 2 times. Therefore, the 2nd row modifies to {8, 9, 7}.
After completing the above operations, the given matrix modifies to {{1, 2, 3}, {6, 4, 5}, {8, 9, 7}}.

Input: mat[][] = {{1, 2, 3, 4}, {4, 5, 6, 7}, {7, 8, 9, 8}, {7, 8, 9, 8}}
Output:
1 2 3 4
7 4 5 6
9 8 7 8
8 9 8 7

Approach: Follow the steps below to solve the problem:

Below is the implementation of the above approach:

## Python3

 `# Python3 program for the above approach`   `# Function to rotate every i-th` `# row of the matrix i times` `def` `rotateMatrix(mat):` `    `  `    ``i ``=` `0` `    ``mat1 ``=` `[]`   `    ``# Traverse the matrix row-wise` `    ``for` `it ``in` `mat:`   `        ``# Reverse the current row` `        ``it.reverse()`   `        ``# Reverse the first i elements` `        ``it1 ``=` `it[:i]` `        ``it1.reverse()`   `        ``# Reverse the last (N - i) elements` `        ``it2 ``=` `it[i:]` `        ``it2.reverse()`   `        ``# Increment count` `        ``i ``+``=` `1` `        ``mat1.append(it1 ``+` `it2)`   `    ``# Print final matrix` `    ``for` `rows ``in` `mat1:` `        ``for` `cols ``in` `rows:` `            ``print``(cols, end ``=` `" "``)`   `        ``print``()`   `# Driver Code` `if` `__name__ ``=``=` `"__main__"``:`   `    ``mat ``=` `[ [ ``1``, ``2``, ``3` `], [ ``4``, ``5``, ``6` `], [ ``7``, ``8``, ``9` `] ]` `    `  `    ``rotateMatrix(mat)`   `# This code is contributed by ukasp`

Output:

```1 2 3
6 4 5
8 9 7```

Time Complexity: O(N*M), as we are using nested loops to traverse N*M times.

Auxiliary Space: O(1), as we are not using any extra space.

Please refer complete article on Modify a matrix by rotating ith row exactly i times in clockwise direction for more details!

My Personal Notes arrow_drop_up
Related Articles