첫째 줄에 배열의 크기 N, M과 수행해야 하는 회전의 수 R이 주어진다.
둘째 줄부터 N개의 줄에 배열 A의 원소 Aij가 주어진다.
입력으로 주어진 배열을 R번 회전시킨 결과를 출력한다.
import sys
input = sys.stdin.readline
def rotate(p, ll, rl, ul, dl):
x, y = p, p
d = 0
while True:
x, y = x+dx[d], y+dy[d]
if x == ul or x == dl or y == ll or y == rl:
x, y = x - dx[d], y - dy[d]
d += 1
x, y = x + dx[d], y + dy[d]
if x == p and y == p:
return
matrix[p][p], matrix[x][y] = matrix[x][y], matrix[p][p]
n, m, r = map(int, input().split())
matrix = []
for i in range(n):
matrix.append(list(map(int, input().split())))
dx = [1, 0, -1, 0]
dy = [0, 1, 0, -1]
for p in range(min(n,m) // 2):
for _ in range(r%(2*(n + m - 4*p - 2))):
rotate(p, p-1, m-p, p-1, n-p)
for e in matrix:
print(*e)
이건 외우자!!