Answer to Question #178132 in Python for ankitha

Question #178132

You are given a square matrix A of dimensions NxN. You need to apply the below given 3 operations on the matrix A.Rotation: It is represented as R S where S is an integer in {90, 180, 270, 360, 450, ...} which denotes the number of degrees to rotate. You need to rotate the matrix A by angle S in the clockwise direction. The angle of rotation(S) will always be in multiples of 90 degrees.Update: It is represented as U X Y Z. In initial matrix A (as given in input), you need to update the element at row index X and column index Y with value Z.After the update, all the previous rotation operations have to be applied to the updated initial matrix.Querying: It is represented as Q K L. You need to print the value at row index K and column index L of the matrix A. InputThe first line contains a single integer N.Next N lines contain N space-separated integers Aij (i - index of the row, j - index of the column).Next lines contain various operations on the array. Each operation on each line



1
Expert's answer
2021-04-07T04:04:30-0400
from copy import deepcopy

def rotate90_clockwise(mat):

return [list(reversed(col)) for col in zip(*mat)]


def rotate(mat, _angle):

_angle = _angle % 360 // 90

for _ in range(_angle):

mat = rotate90_clockwise(mat)

return mat


def update(mat, rot_list, _args):

i, j, value = map(int, _args)

mat[i][j] = str(value)

mat = rotate(mat, sum(rot_list))

return mat


def query(mat, _args):

i, j = map(int, _args)

print(mat[i][j])


if __name__ == "__main__":

n = int(input())

matrix = []

for _ in range(n):

matrix.append(

list(input().split())

)

handle = ""

rotation_list = []

initial_matrix = deepcopy(matrix)

while handle != "-1":

handle, *args = input().split()

if handle == "R":

angle = int(args[0])

rotation_list.append(angle)

matrix = rotate(matrix, angle)

elif handle == "U":

matrix = update(deepcopy(initial_matrix), rotation_list, args)

elif handle == "Q":

query(matrix, args)

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