여름의 서재

[SWEA] 1961_숫자 배열 회전 본문

알고리즘/SWEA

[SWEA] 1961_숫자 배열 회전

엉아_ 2021. 8. 20. 23:17
728x90

📕 문제

N x N 행렬이 주어질 때,
시계 방향으로 90도, 180도, 270도 회전한 모양을 출력하라.

[제약 사항]
N은 3 이상 7 이하이다.

[입력]
가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주어진다.
각 테스트 케이스의 첫 번째 줄에 N이 주어지고,
다음 N 줄에는 N x N 행렬이 주어진다.

[출력]
출력의 첫 줄은 '#t'로 시작하고,
다음 N줄에 걸쳐서 90도, 180도, 270도 회전한 모양을 출력한다.
입력과는 달리 출력에서는 회전한 모양 사이에만 공백이 존재함에 유의하라.

 

def rotate(N, matrix):
    result = []
    for i in range(3):
        matrix90 = [[0 for _ in range(N)] for _ in range(N)]

        for i in range(N):
            for j in range(N):
                matrix90[j][N-1-i] = matrix[i][j]
        result.append(matrix90)
        matrix = matrix90
    return result

T = int(input())
for tc in range(1, T + 1):
    N = int(input())
    matrix = [list(map(int,input().split())) for _ in range(N)]
    result = rotate(N, matrix)
    print('#{}'.format(tc))
    for i in range(N):
        for item in result:
            print(*item[i], sep='', end=' ')
        print()

 

Comments