욤미의 개발일지

[SWEA D2] 1961 숫자 배열 회전 (Python) 본문

Coding Test/SWEA

[SWEA D2] 1961 숫자 배열 회전 (Python)

욤미 2023. 2. 6. 15:24
728x90
반응형

※ SW Expert 아카데미의 문제를 무단 복제하는 것을 금지합니다.

문제

 

SW Expert Academy

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

swexpertacademy.com

90도, 180도, 270도 회전한 모양을 출력

풀이

  • 90도, 180도, 270도 회전하는 함수
def rotate90(n, arr):
    rotated = []
    for i in range(n):
        temp = ''
        for j in range(n):
            temp += str(arr[n-j-1][i])
        rotated.append(temp)
    return rotated
        
def rotate180(n, arr):
    rotated = []
    for i in arr[::-1]:
        temp = ''
        for j in i[::-1]:
            temp += str(j)
        rotated.append(temp)
    return rotated

def rotate270(n, arr):
    rotated = []
    for i in range(n):
        temp = ''
        for j in range(n):
            temp += str(arr[j][n-i-1])
        rotated.append(temp)
    return rotated

T = int(input())
for test_case in range(1, T + 1):
    n = int(input())
    arr = list(input().split() for _ in range(n))
    arr90 = rotate90(n, arr)
    arr180 = rotate180(n, arr)
    arr270 = rotate270(n, arr)
    print(f"#{test_case}")
    for i, j, k in zip(arr90, arr180, arr270):
        print(f"{i} {j} {k}")
  • 90도 회전하는 함수를 여러번 적용
# 90도 회전하는 함수
def rotation(a, N):
    new_arr = [[0] * N for _ in range(N)]  # NxN 빈 배열 만들기
    for i in range(N):
        for j in range(N):
            new_arr[i][j] = a[N-1-j][i]
    return new_arr

T = int(input())
for test_case in range(1, T+1):
    n = int(input())
    arr = list(input().split() for _ in range(n))

    arr90 = rotation(arr, n)
    arr180 = rotation(arr90, n)
    arr270 = rotation(arr180, n)

    print(f"#{test_case}")
    for i, j, k in zip(arr90, arr180, arr270):
        print(f"{''.join(i)} {''.join(j)} {''.join(k)}")
728x90
반응형
Comments