배열 돌리기 1

면접 대비

시간 제한1초메모리 제한512 MB

요약
N×M 행렬의 각 동심원 층을 반시계 방향으로 R번 회전한 뒤 결과 행렬을 출력한다.
난이도

보통10점 중 5점

유형
행렬, 시뮬레이션, 구현, 배열
정답자
아직 제출이 없습니다

문제

크기가 N×M인 배열을 반시계 방향으로 돌리려고 한다. 배열은 다음과 같이 반시계 방향으로 돌려야 한다.

A[1][1] ← A[1][2] ← A[1][3] ← A[1][4] ← A[1][5]
   ↓                                       ↑
A[2][1]   A[2][2] ← A[2][3] ← A[2][4]   A[2][5]
   ↓         ↓                   ↑         ↑
A[3][1]   A[3][2] → A[3][3] → A[3][4]   A[3][5]
   ↓                                       ↑
A[4][1] → A[4][2] → A[4][3] → A[4][4] → A[4][5]

배열과 정수 R이 주어졌을 때, 배열을 R번 회전시킨 결과를 구해보자.

입력

첫째 줄에 배열의 크기 N, M과 수행해야 하는 회전의 수 R이 주어진다.

둘째 줄부터 N개의 줄에 배열 A의 원소 Aij가 주어진다.

출력

입력으로 주어진 배열을 R번 회전시킨 결과를 출력한다.

제한

  • 2 ≤ N, M ≤ 300
  • 1 ≤ R ≤ 1,000
  • min(N, M) mod 2 = 0
  • 1 ≤ Aij ≤ 10^8

예제3

  1. 예제 1

    입력
    4 4 2
    1 2 3 4
    5 6 7 8
    9 10 11 12
    13 14 15 16
    
    예상 출력
    3 4 8 12
    2 11 10 16
    1 7 6 15
    5 9 13 14
    
  2. 예제 2

    입력
    5 4 7
    1 2 3 4
    7 8 9 10
    13 14 15 16
    19 20 21 22
    25 26 27 28
    
    예상 출력
    28 27 26 25
    22 9 15 19
    16 8 21 13
    10 14 20 7
    4 3 2 1
    
  3. 예제 3

    입력
    2 2 3
    1 1
    1 1
    
    예상 출력
    1 1
    1 1