링크 : https://www.acmicpc.net/problem/16935
런타임 에러 지옥...
런타임 에러
import sys
input = sys.stdin.readline
n,m,r = map(int, input().split())
graph = [list(map(int, input().split())) for _ in range(n)]
a = list(map(int, input().split()))
def _1(graph):
graph = graph[::-1]
return graph
def _2(graph):
for i in range(n):
graph[i] = graph[i][::-1]
return graph
def _3(graph):
graph_3 = []
for i in range(len(graph[0])):
li = []
for j in range(len(graph)-1,-1,-1):
li.append(graph[j][i])
graph_3.append(li)
graph = graph_3
return graph
def _4(graph):
graph_4 = []
for i in range(len(graph[0])-1,-1,-1):
li = []
for j in range(len(graph)):
li.append(graph[j][i])
graph_4.append(li)
graph = graph_4
return graph
def _5(graph):
graph_5 = []
li_1, li_2, li_3, li_4 = [], [], [], []
for i in range(n):
if i < n//2:
li_1.append(graph[i][:m//2])
li_2.append(graph[i][m//2:])
else:
li_4.append(graph[i][:m//2])
li_3.append(graph[i][m//2:])
for i in range(len(li_4)):
li = []
for j in range(len(li_4[0])):
li.append(li_4[i][j])
for j in range(len(li_1[0])):
li.append(li_1[i][j])
graph_5.append(li)
for i in range(len(li_4)):
lii = []
for j in range(len(li_4[0])):
lii.append(li_3[i][j])
for j in range(len(li_1[0])):
lii.append(li_2[i][j])
graph_5.append(lii)
graph = graph_5
return graph
def _6(graph):
graph_6 = []
li_1, li_2, li_3, li_4 = [], [], [], []
for i in range(n):
if i < n//2:
li_1.append(graph[i][:m//2])
li_2.append(graph[i][m//2:])
else:
li_4.append(graph[i][:m//2])
li_3.append(graph[i][m//2:])
for i in range(len(li_2)):
li = []
for j in range(len(li_2[0])):
li.append(li_2[i][j])
for j in range(len(li_1[0])):
li.append(li_3[i][j])
graph_6.append(li)
for i in range(len(li_2)):
lii = []
for j in range(len(li_2[0])):
lii.append(li_1[i][j])
for j in range(len(li_1[0])):
lii.append(li_4[i][j])
graph_6.append(lii)
graph = graph_6
return graph
for i in a:
if i == 1:
graph = _1(graph)
elif i==2:
graph = _2(graph)
elif i == 3:
graph = _3(graph)
elif i == 4:
graph = _4(graph)
elif i == 5:
graph = _5(graph)
else:
graph = _6(graph)
for k in graph:
print(*k)
다른 풀이 - 런타임 에러
import sys
input = sys.stdin.readline
def _1(graph):
graph = graph[::-1]
return graph
def _2(graph):
for i in range(n):
graph[i] = graph[i][::-1]
return graph
def _3(graph):
graph = [list(row)[::-1] for row in zip(*graph)]
return graph
def _4(graph):
graph = [list(row) for row in list(zip(*graph))[::-1]]
return graph
def _5(graph):
copy_graph = [[0]*m for _ in range(n)]
half_n = n//2
half_m = m//2
for i in range(half_n):
for j in range(half_m):
copy_graph[i][half_m + j] = graph[i][j]
for i in range(half_n):
for j in range(half_m, m):
copy_graph[half_n + i][j] = graph[i][j]
for i in range(half_n, n):
for j in range(half_m, m):
copy_graph[i][j - half_m] = graph[i][j]
for i in range(half_n, n):
for j in range(half_m):
copy_graph[i - half_n][j] = graph[i][j]
return copy_graph
def _6(graph):
copy_graph = [[0] * m for _ in range(n)]
half_n = n // 2
half_m = m // 2
for i in range(half_n):
for j in range(half_m):
copy_graph[half_n + i][j] = graph[i][j]
for i in range(half_n):
for j in range(half_m, m):
copy_graph[i][j - half_m] = graph[i][j]
for i in range(half_n, n):
for j in range(half_m, m):
copy_graph[i - half_n][j] = graph[i][j]
for i in range(half_n, n):
for j in range(half_m):
copy_graph[i][half_m + j] = graph[i][j]
return copy_graph
n,m,r = map(int, input().split())
graph = [list(map(int, input().split())) for _ in range(n)]
a = list(map(int, input().split()))
for i in a:
if i == 1:
graph = _1(graph)
elif i==2:
graph = _2(graph)
elif i == 3:
graph = _3(graph)
elif i == 4:
graph = _4(graph)
elif i == 5:
graph = _5(graph)
else:
graph = _6(graph)
for k in graph:
print(*k)