링크 ->요기
단순히 구현을 해주면 되는 문제이다.
따라서 별 설명을 없을 것 같다.
하지만 걸린 시간도 단순(??)했다.
시간이 오래걸린 이유를 나열해보면
- 문제를 잘못 읽었다!!
- 연산을 한번에 여러번 줄 수 있음을 못보고 1개씩만 준다고 인지했다.
- 3번 4번 구역을 잘못 바꿔서 이해후 구현했다.
- 디테일한 부분에서의 실수!!
- 배열을 돌린후에는 M과 N이 바뀌어야 되었다 왜냐하면 바꾸지않고 다음 아무 연산을 시도하면 실제 행의 길이를 담당하는 변수는 N이아닌 M으로 회전했기 때문이다.
import sys
def cal1():
#새로운 배열공간 만들기
temp = [[0]*M for _ in range(N)]
#새로운 공간에 좌우 반전으로 복사
for a in range(N):
for b in range(M):
temp[a][b] = arr[N-1-a][b]
return temp
def cal2():
#새로운 배열공간 만들기:
temp = [[0]*M for _ in range(N)]
#새로운 공간에 상하 반전으로 복사
for b in range(M):
for a in range(N):
temp[a][b] = arr[a][M-1-b]
return temp
def cal3():
#새로운 배열 공간 만들어 주기
temp = [[0]*N for i in range(M)]
#새로운 공간에 오른쪽으로 90도 회전
for a in range(M):
for b in range(N):
temp[a][b] = arr[N-1-b][a]
return temp
def cal4():
#새로운 배열 공간 만들어 주기
temp = [[0]*N for i in range(M)]
#새로운 공간에 왼쪽으로 90도 회전
for a in range(M):
for b in range(N):
temp[a][b] = arr[b][M-1-a]
return temp
def cal5():
#새로운 배열공간 만들기:
temp = [[0]*M for _ in range(N)]
m = M // 2
n = N // 2
#1번을 2번 구역으로
for a in range(n):
for b in range(m, M):
temp[a][b] = arr[a][b-m]
#2번을 3번 구역으로
for a in range(n,N):
for b in range(m,M):
temp[a][b] = arr[a-n][b]
#3번을 4번 구역으로
for a in range(n,N):
for b in range(m):
temp[a][b] = arr[a][b+m]
#4번 구역을 1번 구역으로
for a in range(n):
for b in range(m):
temp[a][b] = arr[a+n][b]
return temp
def cal6():
#새로운 배열공간 만들기:
temp = [[0]*M for _ in range(N)]
m = M // 2
n = N // 2
#4번을 3번 구역으로
for a in range(n,N):
for b in range(m, M):
temp[a][b] = arr[a][b-m]
#3번을 2번 구역으로
for a in range(n):
for b in range(m, M):
temp[a][b] = arr[a+n][b]
#2번을 1번 구역으로
for a in range(n):
for b in range(m):
temp[a][b] = arr[a][b+m]
#1번을 4번 구역으로
for a in range(n, N):
for b in range(m):
temp[a][b] = arr[a-n][b]
return temp
input = sys.stdin.readline
N, M, K = map(int, input().split())
#배열 입력 받기:
arr = [list(map(int, input().split())) for _ in range(N)]
calculations = list(map(int, input().split()))
for c in calculations:
if c == 1:
arr = cal1()
elif c == 2:
arr = cal2()
elif c == 3:
arr = cal3()
N,M = M, N
elif c == 4:
arr = cal4()
M,N = N, M
elif c == 5:
arr = cal5()
elif c == 6:
arr = cal6()
for i in arr:
print(*i)