문제풀이/SW Expert Academy

[SWEA][D2] 1961. 숫자 배열 회전 (파이썬/Python)

얄루몬 2021. 9. 2. 13:07

 

t= int(input())

for tc in range(1, t+1):
    n = int(input())
    lst = [input().split() for _ in range(n)]

    #90도
    lst_90 = []
    for i in range(n):
        tmp = []
        for j in range(n):
            tmp.append(lst[j][i]) # 0,0 -> 0,1 -> 0,2 -> 1,0 -> 1,1 -> 1,2....
        tmp.reverse()
        lst_90.append(tmp)

    #180도
    lst_180 = []
    for i in range(n):
        tmp = []
        for j in range(n):
            tmp.append(lst_90[j][i]) #90도 돌린 것을 이용해서
        tmp.reverse()
        lst_180.append(tmp)

    #270도
    lst_270 = []
    for i in range(n):
        tmp = []
        for j in range(n):
            tmp.append(lst_180[j][i])
        tmp.reverse()
        lst_270.append(tmp)

    print(f'#{tc}') #테스트케이스 숫자 출력
    for i in range(n):
        print(''.join(list(map(str, lst_90[i]))), ''.join(list(map(str, lst_180[i]))), ''.join(list(map(str, lst_270[i]))))

그림 설명 1 
이중반복문이 흘러가는 방향
7,4,1을 만들기 위함(아래는 똑같이 하며 됨)

#그림으로 좀 더 편하게 이해하기 위함