Answer to Question #193711 in Python for jayanth

Question #193711
Given a matrix of order M*N and a value K, write a program to rotate each ring of the matrix clockwise by K elements. If in any ring has less than or equal to K elements, then don’t rotate that ring.
Input

The first line of input will be two space-separated integers, denoting the M and N.
The next M lines will contain N space-separated integers.
The next line will contain an integer, denoting K.
Output

If the given K is 3. Rotate each ring of the matrix by 3 elements.
In the above matrix, the elements (1, 2, 3, 4, 8, 12, 16, 15, 14, 13, 9, 5) is a ring, similarly, the elements (6, 7, 11, 10) will make a ring.
Therefore, by rotating each ring in clockwise direction by 3 elements will give (13, 9, 5, 1, 2, 3, 4, 8, 12, 16, 15, 14) and (10, 6, 7, 11). So the output should be 
13 9 5 1
14 7 11 2
15 6 10 3
16 12 8 4
Sample Input 1
4 4
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
3

Sample Output 1
13 9 5 1
14 7 11 2
15 6 10 3
16 12 8 4

Sample Input 2
3 4
1 2 3 4
10 11 12 5
9 8 7 6
2
Sample Output 2
9 10 1 2
8 11 12 3
7 6 5 4









1
Expert's answer
2021-05-15T13:56:07-0400
M, N = input().split(' ')
M, N = int(M), int(N)
matrix = []
for i in range(M):
	row = [int(j) for j in input().split(' ')]
	matrix.append(row)
K = int(input())
vals= matrix[0][:-1] + [j[-1] for j in matrix][:-1] + matrix[-1][::-1][:-1] + [j[0] for j in matrix][::-1][:-1]
vals = vals[-K:] + vals[:-K]
output_matrix = matrix
z = [(0, j) for j in range(N)][:-1] + [(i, N - 1) for i in range(M)][:-1] + [(M - 1, j) for j in range(N)][::-1][:-1] + [(i, 0) for i in range(M)][::-1][:-1]




n = 0
for i, j in z:
	output_matrix[i][j] = vals[n]
	n += 1
#print the output matrix
for i in range(len(output_matrix)):
    for j in range(len(output_matrix)):
        print(output_matrix[i][j], end=" ")
    print()
    
    
    
    

Need a fast expert's response?

Submit order

and get a quick answer at the best price

for any assignment or question with DETAILED EXPLANATIONS!

Comments

No comments. Be the first!

Leave a comment

LATEST TUTORIALS
New on Blog
APPROVED BY CLIENTS