[SWEA/Python] 숫자 배열 회전

NAGANG LEE·2024년 1월 9일

알고

목록 보기
42/118

👀 문제

숫자 배열 회전 ✨ D2

N x N 행렬이 주어질 때,

시계 방향으로 90도, 180도, 270도 회전한 모양을 출력하라.

[제약 사항]

N은 3 이상 7 이하이다.

[입력]

가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주어진다.

각 테스트 케이스의 첫 번째 줄에 N이 주어지고,

다음 N 줄에는 N x N 행렬이 주어진다.

[출력]

출력의 첫 줄은 '#t'로 시작하고,

다음 N줄에 걸쳐서 90도, 180도, 270도 회전한 모양을 출력한다.

입력과는 달리 출력에서는 회전한 모양 사이에만 공백이 존재함에 유의하라.

(t는 테스트 케이스의 번호를 의미하며 1부터 시작한다.)


✍️ 코드

T = int(input())

for test_case in range(1, T + 1):
    arr = []
    n = int(input())
    
    for i in range(n):
        arr.append(list(map(int, input().split())))

    arr_90, arr_180, arr_270 = [], [], []

    #90도
    for i in range(n):
        number_str = ""
        for j in range(n-1, -1, -1):
            number_str += str(arr[j][i])
        arr_90.append(number_str)

    #180도
    for i in range(n-1, -1, -1):
        number_str = ""
        for j in range(n-1, -1, -1):
            number_str += str(arr[i][j])
        arr_180.append(number_str)

    #270도
    for i in range(n-1, -1, -1):
        number_str = ""
        for j in range(n):
            number_str += str(arr[j][i])
        arr_270.append(number_str)

    print("#%d" %test_case)
    
    # 출력
    for i in range(n):
        print(arr_90[i] + " " + arr_180[i] + " " + arr_270[i])
profile
모바일 개발자를 목표로 하고 있어요 💭

0개의 댓글