[Python] SW Expert Academy #1961 숫자 배열 회전

이재원·2024년 3월 13일

Samsung SW Expert Academy

목록 보기
5/34

📚문제: #1961 숫자 배열 회전(D2)

입력

1
3
1 2 3
4 5 6
7 8 9

출력

#1
741 987 369
852 654 258
963 321 147

전체 코드

# 1961. 숫자 배열 회전

# 테스트 케이스
T = int(input())

# 테스트 케이스가 주어진다.
for i in range(1, T+1):
    
    # N이 주어진다.
    N = int(input())
    
    # 행렬 초기화s
    matrix = []
    
    # N x N 행렬이 주어진다.
    for _ in range(N):
        
        matrix.append(list(map(int, input().split())))
    
    # 90도 회전
    matrix_90 = [[0] * N for _ in range(N)]
    
    for p in range(N):
        
        for q in range(N):
            
            matrix_90[q][N-1-p] = matrix[p][q]
               
    # 180도 회전
    matrix_180 = [[0] * N for _ in range(N)]

    for p in range(N):
        
        for q in range(N):
            
            matrix_180[q][N-1-p] = matrix_90[p][q]
    
    # 270도 회전
    matrix_270 = [[0] * N for _ in range(N)]
    
    for p in range(N):
        
        for q in range(N):
            
            matrix_270[q][N-1-p] = matrix_180[p][q]
    
    # 출력을 위한 편집
    ans = []
    
    for k in range(N):
        
        seq_90 = ''
        
        for val in matrix_90[k]:
            
            seq_90 += str(val)
        
        seq_180 = ''
        
        for val in matrix_180[k]:
            
            seq_180 += str(val)
        
        seq_270 = ''
        
        for val in matrix_270[k]:
            
            seq_270 += str(val)        

        seq = seq_90 + ' ' + seq_180 + ' ' + seq_270
        
        ans.append(seq)
    
    print("#{}".format(i))
    
    for k in range(N):
        
        print(ans[k])

0개의 댓글