# 제일 바깥쪽 1줄을 큰 사각형이라고 하고 회전, 그 안쪽 사각형 회전...
n, m, r = map(int, input().split(' '))
graph = [list(map(int, input().split(' '))) for _ in range(n)]
for _ in range(r): # 회전 수만큼 반복
for i in range(min(n, m) // 2): # 사각형 개수
s_x, s_y = i, i # 맨 처음 좌표 지점
s_value = graph[s_x][s_y] # 맨 처음 좌표가 가진 값
for j in range(i + 1, n - i): # 좌
s_x = j
prev_value = graph[s_x][s_y] # 현재 좌표값
graph[s_x][s_y] = s_value # 현재 좌표에 이전 값 넣어줌
s_value = prev_value # 이전값으로 갱신
for j in range(i + 1, m - i): # 하
s_y = j
prev_value = graph[s_x][s_y]
graph[s_x][s_y] = s_value
s_value = prev_value
for j in range(i + 1, n - i): # 우
s_x = n - j - 1 # 열 인덱스를 역순으로 회전할 수 있게 함
prev_value = graph[s_x][s_y]
graph[s_x][s_y] = s_value
s_value = prev_value
for j in range(i + 1, m - i): # 상
s_y = m - j - 1
prev_value = graph[s_x][s_y]
graph[s_x][s_y] = s_value
s_value = prev_value
for i in range(n):
for j in range(m):
print(graph[i][j], end=' ')
print()
https://www.acmicpc.net/problem/16926
'study > Algorithm' 카테고리의 다른 글
[백준] 파이썬 2615 : 오목 (0) | 2024.04.02 |
---|---|
[백준] 파이썬 1244 : 스위치 켜고 끄기 (0) | 2024.04.02 |
[백준] 파이썬 1652번: 누울 자리를 찾아라 (0) | 2024.04.01 |
[백준] 파이썬 1018번: 체스판 다시 칠하기 (0) | 2024.04.01 |
[백준] 파이썬 2556번: 최댓값 (0) | 2024.04.01 |