1961. 숫자 배열 회전

D2

Problem

SW Expert Academy 숫자 배열 회전

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com


Solution

1. 90도, 180도, 270도는 사실 90도 회전을 1번, 2번, 3번한 것과 같다.
2. 그러므로 90도 회전 함수를 만들어서 여러번 사용하자.
3. 출력형식은 join()함수를 사용하는 방법이 더 간단하다.

Code

# 90도 돌리기
def turn90(arr):
    n = len(arr)
    tmp = [[0]*n for _ in range(n)]
    for i in range(n):
        for j in range(n):
            tmp[j][n-1-i] = arr[i][j]
    return tmp
 
 
for test_case in range(1, int(input())+1):
    # 입력 받기
    N = int(input())
    num_list = [list(map(int, input().split())) for _ in range(N)]
    # 출력형식 맞추기
    print(f'#{test_case}')
    for i in range(N):
        # 쉬운 형식
        # print("".join(map(str,turn90(num_list)[i])), "".join(map(str,turn90(turn90(num_list))[i])), "".join(map(str,turn90(turn90(turn90(num_list)))[i])))
        # 귀찮은 형식
        print(*turn90(num_list)[i], sep="", end=" ")
        print(*turn90(turn90(num_list))[i], sep="", end=" ")
        print(*turn90(turn90(turn90(num_list)))[i], sep="")


<부족한 부분은 댓글로 남겨주시면 저에게 도움이 됩니다!>

반응형