T = int(input())

for tc in range(1,1+T):
    n = int(input())

    board = [list(map(int,input().split())) for _ in range(n)]

	# 2차원 리스트 사용 X
    # 90도(3의 배수) 180도(3의 배수+1) 270도(3의 배수+2) 위치가 고정되기 때문
    res = [0]*(n*3)

    # 90도
    for q in range(n):
        temp = ''
        for w in range(n):
            temp += str(board[-1-w][q])
        res[q*3] = temp

    # 180도
    for qq in range(n):
        temp1 = ''
        for ww in range(n):
            temp1 += str(board[-1-qq][-1-ww])
        res[qq*3+1] = temp1

    # 270도
    for qqq in range(n):
        temp2 = ''
        for www in range(n):
            temp2 += str(board[www][-1-qqq])
        res[qqq*3+2] = temp2

    print('#{}'.format(tc))
    for x in range(n*3):
        if x%3 == 2: # 마지막에는 값을 출력한 후, 줄 변경해줘야 함
            print(res[x], end = '')
            print()
        else:
            print(res[x], end = ' ')

 

그 외

90도, 180도, 270도가 어떻게 회전하는지를 파악하는 것이 가장 어려웠던 문제

 

문제를 해결하면서 이 방법보다 더 개념적으로 접근하는 방법이 존재할 거라는 생각이 들었음

 

 

ps. 개인적인 코드와 코드를 작성의 이유를 적은 것입니다.

 

오류나 적절치 않은 문법이 존재할 수 있으며, 다른 분들께는 굉장히 비효율적인 방법으로 여겨질 수 있습니다.

 

혹시 개선 사항, 오류 및 문제에 대한 수정 사항 등을 댓글로 남겨주신다면 감사한 마음으로 배우고 수정하겠습니다