N x N 행렬이 주어질 때, 시계 방향으로 90도, 180도, 270도 회전한 모양을 출력하는 문제.
T = int(input()) # 테스트케이스의 개수 T
for test_case in range(1, T+1):
N = int(input()) # 행렬 N
matrix = [input().split() for i in range(N)]
reverse = list(zip(*matrix)) # 전치 행렬
print("#%d" %(test_case)) # 테스트케이스의 번호 출력
for i in range(N):
rotate90 = ''.join(reverse[i]) # 문자열로 변환
rotate90 = rotate90[::-1] # 역순으로 만든다 rotate 90도!
rotate180 = ''.join(matrix[N-(i+1)]) # 아래서부터 위까지
rotate180 = rotate180[::-1] # 역순
rotate270 = ''.join(reverse[N-(i+1)]) # 오른쪽부터 왼쪽
print(rotate90, rotate180, rotate270)
[문제풀이]

90도 회전한 건 이렇게 왼쪽에서부터 아래쪽부터 위로 요소를 가져와 붙이는 741, 852, 963이고, 180도 회전의 경우엔 배열의 마지막 행부터 첫 행까지 역순으로 가져와 987, 654, 321 이렇게 하는 방식이다.
270도 회전의 경우엔 오른쪽부터 왼쪽으로 위에서부터 아래로 요소를 가져와 369, 258, 147 식으로 구한다.
이걸 그냥 코드로 구현해 print하면 끝.
'코딩테스트 > SWEA' 카테고리의 다른 글
| [Python, 파이썬] SWEA 4522. 세상의 모든 팰린드롬 (0) | 2024.11.11 |
|---|---|
| [Python, 파이썬] SWEA 5356. 의석이의 세로로 말해요 (0) | 2024.11.11 |
| [Python, 파이썬] SWEA 6485. 삼성시의 버스 노선 (0) | 2024.11.11 |
| [Python, 파이썬] SWEA 1238. [S/W 문제해결 기본] 10일차 - Contact (0) | 2024.11.11 |
| [Python, 파이썬] SWEA 3499. 퍼펙트 셔플 (1) | 2024.11.11 |