문제링크
https://www.acmicpc.net/problem/16935
코드 제출 기록 (메모리 및 시간)
메모리 : 127904 KB
시간 : 368 ms
Code
# 연산 1
def fun1(N, M, arr):
tmp = [[0 for _ in range(M)] for _ in range(N)]
for i in range(N):
tmp[i] = arr[N-1-i]
return tmp
# 연산 2
def fun2(N, M, arr):
tmp = [[0 for _ in range(M)] for _ in range(N)]
for i in range(N):
for j in range(M):
tmp[i][j] = arr[i][M-1-j]
return tmp
# 연산 3
def fun3(N, M, arr):
tmp = [[0 for _ in range(N)] for _ in range(M)]
for i in range(M):
for j in range(N):
tmp[i][j] = arr[N-1-j][i]
return tmp
# 연산 4
def fun4(N, M, arr):
tmp = [[0 for _ in range(N)] for _ in range(M)]
for i in range(M):
for j in range(N):
tmp[i][j] = arr[j][M-1-i]
return tmp
# 연산 5
def fun5(N, M, arr):
tmp = [[0 for _ in range(M)] for _ in range(N)]
n = int(N/2)
m = int(M/2)
for i in range(N):
for j in range(M):
if (0 <= i < n and 0 <= j < m):
tmp[i][j] = arr[i + n][j]
elif (0 <= i < n and j >= m):
tmp[i][j] = arr[i][j - m]
elif (i >= n and j >= m):
tmp[i][j] = arr[i-n][j]
elif (i >= n and 0 <= j < m):
tmp[i][j] = arr[i][j+m]
return tmp
# 연산 6
def fun6(N, M, arr):
tmp = [[0 for _ in range(M)] for _ in range(N)]
n = int(N/2)
m = int(M/2)
for i in range(N):
for j in range(M):
if (0 <= i < n and 0 <= j < m):
tmp[i][j] = arr[i][j+m]
elif (0 <= i < n and j >= m):
tmp[i][j] = arr[i+n][j]
elif (i >= n and j >= m):
tmp[i][j] = arr[i][j-m]
elif (i >= n and 0 <= j < m):
tmp[i][j] = arr[i-n][j]
return tmp
# 입력받기
N, M, R = map(int , input().split())
arr=[[0 for _ in range(M)] for _ in range(N)]
for i in range(N):
arr[i] = list(map(int, input().split()))
fun = list(map(int, input().split()))
# 연산하기
for i in fun:
if i == 1:
arr = fun1(N, M, arr)
elif i == 2:
arr = fun2(N, M, arr)
elif i == 3:
arr = fun3(N, M, arr)
tmp = N
N = M
M = tmp
elif i == 4:
arr = fun4(N, M, arr)
tmp = N
N = M
M = tmp
elif i == 5:
arr = fun5(N, M, arr)
elif i == 6:
arr = fun6(N, M, arr)
for i in range(N):
for j in range(M):
print(arr[i][j], end = " ")
print("")
Python
복사