얼렁뚱땅 백준 문제풀이

[백준 문제풀이] 얼렁뚱땅 17276번 배열 돌리기 풀이

MOSTAR 2022. 8. 22. 14:55

https://www.acmicpc.net/problem/17276

 

def turn(array_,n) :

	col = []
	x_1 = []
	x_2 = []

	temp = list(array_)

	for i in range(n) :
		if i == n//2 :
			row = list(array_[i])
		col.append(array_[i][n//2])
		x_1.append(array_[i][i])
		x_2.append(array_[i][(n-1)-i])

	for k in range(4):
		# 왼쪽 대 -> 세로
		if k == 0 :
			for t in range(n) :
				temp[t][n//2] = x_1[t]
		# 세로 -> 오른쪽 대
		elif k == 1 :
			for t in range(n) :
				temp[t][(n-1)-t] = col[t]
		# 오른쪽 대 -> 가로
		elif k == 2 :
			for t in range(n) :
				temp[n//2][(n-1)-t] = x_2[t]
		# 가로 -> 왼대
		elif k == 3 :
			for t in range(n) :
				temp[t][t] = row[t]

	return temp

case = int(input())
for _ in range(case) :
	n, m = map(int, input().split())
	array = [list(map(int,input().split())) for _ in range(n)]

	if m >= 0 :
		time = ((m//45))
	else :
		m = -(m)
		time = 8 - ((m//45))

	for j in range(time) :
		array = turn(array,n)

	for j in range(n) :
		print(*array[j])