CT/SWEA

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

hyunji1109 2023. 6. 14. 08:50

https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=2&contestProbId=AV5Pq-OKAVYDFAUq&categoryId=AV5Pq-OKAVYDFAUq&categoryType=CODE&problemTitle=&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=2&pageSize=10&pageIndex=2 

 

SW Expert Academy

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

swexpertacademy.com

N x N배열에서 시계 방향으로 90도, 180도, 270도로 회전하여 출력하세요.


  1. 90,180,270도회전할 테이블을 생성한다.
  2. 90도 회전 테이블은 table90[i][j] = table[N-1-j][i]공식을 사용한다.
  3. 180,270도 회전 공식 외우기 힘들어서 90도 테이블에서 한번더 회전시키고 180도 테이블에서 한번더 90도로 회전시켰다.
table90[i][j] = table[N-1-j][i]
table180[i][j] = table[N-1-i][N-1-j]
table270[i][j] = table[j][N-1-i]

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
= int(input())
 
for test_case in range(1, T + 1):
    N = int(input())
    table = [list(map(int, input().split())) for _ in range(N)] 
    table90 = [[0]*for _ in range(N)]
    table180 = [[0]*for _ in range(N)]
    table270 = [[0]*for _ in range(N)]
    
    for i in range(N):
        for j in range(N):
            table90[i][j] = table[N-1-j][i]
    for i in range(N):
        for j in range(N):
            table180[i][j] = table90[N-1-j][i]
    for i in range(N):
        for j in range(N):
            table270[i][j] = table180[N-1-j][i]
            
    print(f'#{test_case}')
    for a, b, c in zip(table90, table180, table270):
       a1 = ''.join(map(str, a))
       b1 = ''.join(map(str, b))
       c1 = ''.join(map(str, c))
        print(a1,b1,c1)



 


 

  • zip(): 데이터 묶기
n = "123"
s = "abc"
s2 = "def"

#str타입만 가능 다른건 오류
for a,b,c in zip(n,s,s2):
    print(a,b,c)

1 a d
2 b e
3 c f

 

  • join(): 문자열 합치기
s = ['a', 'b', 'c', 'd']
print(s)

s1 = "_".join(s)
print(s1)
 
s2 = ".".join(s)
print(s2)

['a', 'b', 'c', 'd']
a_b_c_d
a.b.c.d

 

  • map(): 타입 한꺼번에 변환
n = [1,2,3,4]
n = list(map(str, n))
print(n)

['1', '2', '3', '4']