프로그래밍/HackerRank
[HackerRank][Python3] Matrix Layer Rotation
snoopybox
2018. 8. 8. 01:43
Problem :
https://www.hackerrank.com/challenges/matrix-rotation-algo/problem
My Solution :
#!/usr/bin/env python3
def matrixRotation(matrix):
for i in range(min(m, n)//2):
count = 2*(m+n-2) - 8*(i)
rotate = r % count
while 0 < rotate:
temp = matrix[i][i]
matrix[i][i:n-1-i] = matrix[i][i+1:n-i]
for j in range(i+1, m-i):
matrix[j-1][n-1-i] = matrix[j][n-1-i]
matrix[m-1-i][i+1:n-i] = matrix[m-1-i][i:n-1-i]
for j in range(m-2-i, i-1, -1):
matrix[j+1][i] = matrix[j][i]
matrix[i+1][i] = temp
rotate -= 1
m, n, r = map(int, input().split())
matrix = []
for _ in range(m):
matrix.append(list(map(int, input().rstrip().split())))
matrixRotation(matrix)
for line in matrix:
print(' '.join(map(str, line)))