알고리즘 공부/파이썬(Python)

SWEA 1961번 D2 숫자 배열 회전 파이썬

마달랭 2024. 6. 26. 16:09
반응형

리뷰

코드가 조잡스럽긴 하지만 1트만에 솔!

문제 풀이

1. 출력에 테스트케이스 값이 필요하니 1, t + 1범위로 for문 시작

2. 회전시킬 n * n 배열을 문자열로 받아주었다.

3. 90, 180, 270도 배열을 초기화 해주고 문자열 인덱싱을 통해 각 배열에 알맞은 숫자를 append 해주었다.

4. 테스트 케이스를 출력해 주고 join을 통해 한줄에 n개의 숫자가 나오도록 출력해 주었다.

참고 사항

감이 잡히지 않을 경우 예제를 참고하여 시도해보면 금방 감이 잡힌다.

정답 코드

def q1961():
    # SWEA 1961번 D2 숫자 배열 회전 파이썬
    t = int(input())
    for i in range(1, t + 1):
        n = int(input())
        array = ''
        for _ in range(n):
            lst = list(map(str, input().split()))
            for temp in lst:
                for char in temp:
                    array += char
        angle90 = []
        angle180 = []
        angle270 = []
        for j in range(n):
            for k in range(n - 1, -1, -1):
                angle90.append(array[j + k * n])
        for j in range(len(array) - 1, -1, -1):
            angle180.append(array[j])
        for j in range(n - 1, -1, -1):
            for k in range(n):
                angle270.append(array[j + k * n])
        print(f'#{i}')
        for j in range(n):
            print(''.join(angle90[j * n:j * n + n]), ''.join(angle180[j * n:j * n + n]), ''.join(angle270[j * n:j * n + n]))
q1961()

 

728x90
반응형