여니의 취준 준비/코딩테스트 (Python)

[n17276] 배열 돌리기 (in python)

여니's 2021. 5. 29. 21:47

import sys

t_num = int(sys.stdin.readline())
# input보다는 sys.stdin.readline.rstrip() rstrip()은 줄바꿈 문자 제외

def plus_turn(array, n):
    num = n // 2
    for i in range(n):
        array[i][i], array[i][num] = array[i][num], array[i][i]
        array[i][i], array[i][n - 1 - i] = array[i][n - 1 - i], array[i][i]
        array[i][i], array[num][i] = array[num][i], array[i][i]

    for i in range(num):
        array[num][i], array[num][n - 1 - i] = array[num][n - 1 - i], array[num][i]

    return array

def minus_turn(array, n):
    num = n // 2
    for i in range(n):
        array[i][n - 1 - i], array[i][num] = array[i][num], array[i][n - 1 - i]
        array[i][n - 1 - i], array[i][i] = array[i][i], array[i][n - 1 - i]
        array[i][n - 1 - i], array[num][i] = array[num][i], array[i][n - 1 - i]

    for i in range(num):
        array[n - 1 - i][i], array[i][n - 1 - i] = array[i][n - 1 - i], array[n - 1 - i][i]
    return array

for _ in range(t_num):
    n, d = map(int, input().split())
    array = [list(map(int, input().split())) for _ in range(n)]
    if d >= 0:
        p_d = d // 45
        for _ in range(p_d):
            array = plus_turn(array, n)
        for i in range(n):
            for j in range(n):
                print(array[i][j], end=' ')
            print()

    else:
        p_d = abs(d) // 45
        for _ in range(p_d):
            array = minus_turn(array, n)
        for i in range(n):
            for j in range(n):
                print(array[i][j], end=' ')
            print()

 

'여니의 취준 준비 > 코딩테스트 (Python)' 카테고리의 다른 글

[n13699] 점화식  (0) 2021.08.24
[n20207] 달력  (0) 2021.08.24
[n16926] 배열 돌리기 (python)  (0) 2021.05.26
[n2615] 오목 (in python)  (0) 2021.05.26
[n17413] 단어 뒤집기 2 (in python)  (0) 2021.05.25