Open In App

Python3 Program to Rotate the matrix right by K times

Last Updated : 05 Sep, 2024
Comments
Improve
Suggest changes
Like Article
Like
Report

Given a matrix of size N*M, and a number K. We have to rotate the matrix K times to the right side. 
Examples: 
 

Input :  N = 3, M = 3, K = 2
12 23 34
45 56 67
78 89 91

Output : 23 34 12
56 67 45
89 91 78


Input : N = 2, M = 2, K = 2
1 2
3 4

Output : 1 2
3 4


 


A simple yet effective approach is to consider each row of the matrix as an array and perform an array rotation. This can be done by copying the elements from K to end of array to starting of array using temporary array. And then the remaining elements from start to K-1 to end of the array.
Lets take an example: 
 


 

Python3
# Python program to rotate 
# a matrix right by k times

# size of matrix
M = 3
N = 3
matrix = [[12, 23, 34],
          [45, 56, 67], 
          [78, 89, 91]]

# function to rotate
# matrix by k times
def rotateMatrix(k) :

    global M, N, matrix
    
    # temporary array 
    # of size M
    temp = [0] * M
    
    # within the size
    # of matrix
    k = k % M
    
    for i in range(0, N) : 
    
        # copy first M-k elements
        # to temporary array
        for t in range(0, M - k) :
            temp[t] = matrix[i][t]
    
        # copy the elements from 
        # k to end to starting
        for j in range(M - k, M) :
            matrix[i][j - M + k] = matrix[i][j]
    
        # copy elements from 
        # temporary array to end
        for j in range(k, M) :
            matrix[i][j] = temp[j - k]
    
# function to display
# the matrix
def displayMatrix() :

    global M, N, matrix
    for i in range(0, N) :
    
        for j in range(0, M) :
            print ("{} " . 
                   format(matrix[i][j]), end = "")
        print ()

# Driver code
k = 2

# rotate matrix by k
rotateMatrix(k)

# display rotated matrix
displayMatrix()

# This code is contributed by 
# Manish Shaw(manishshaw1)

Output
23 34 12 
56 67 45 
89 91 78

Time Complexity: O(N*M) 
Auxiliary Space: O(M)

Please refer complete article on Rotate the matrix right by K times for more details!


Next Article
Article Tags :
Practice Tags :

Similar Reads