def rotate90():
temp = [[] for _ in range(N)]
idx = 0
for c in range(N):
for r in range(N-1, -1, -1):
temp[idx].append(matrix[r][c])
idx += 1
return temp
def rotate180():
temp = [[] for _ in range(N)]
idx = 0
for r in range(N-1, -1, -1):
for c in range(N-1, -1, -1):
temp[idx].append(matrix[r][c])
idx += 1
return temp
def rotate270():
temp = [[] for _ in range(N)]
idx = 0
for c in range(N-1, -1, -1):
for r in range(N):
temp[idx].append(matrix[r][c])
idx += 1
return temp
T = int(input())
# 여러개의 테스트 케이스가 주어지므로, 각각을 처리합니다.
for test_case in range(1, T + 1):
N = int(input())
matrix = [[] for _ in range(N)]
for i in range(N):
val = map(int, input().split())
for j in val:
matrix[i].append(j)
# 회전 배열
rot90 = [[] for _ in range(N)]
rot180 = [[] for _ in range(N)]
rot270 = [[] for _ in range(N)]
# 90도 회전
rot90 = rotate90()
# 180도 회전
rot180 = rotate180()
# 270도 회전
rot270 = rotate270()
print("#" + str(test_case))
for k in range(N):
print("".join(map(str, rot90[k])), end=" ")
print("".join(map(str, rot180[k])), end=" ")
print("".join(map(str, rot270[k])))
90도, 180도, 270도 상황별로 어떤 식으로 출력되는지만 파악하면 되는 문제다.
그런데 출력이 조금 생각해 볼만 했다.
회전배열이 다음과 같이 출력되어야 했기에
#1
741 987 369
852 654 258
963 321 147
각 회전배열마다 출력하는 것이 모든 배열의 한 줄씩 출력씩 출력해야 했던 것이 생각해볼만한 포인트였다.