나선형 산책

면접 대비

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

요약
왼쪽 위에서 시작해 시계 방향으로 안쪽으로 도는 나선 경로를 따라 각 칸의 방문 순서를 N x N 격자에 채웁니다.
난이도

쉬움10점 중 3점

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

문제

소들은 한 변의 길이가 NN(1≤N≤7501 \le N \le 750)인 정사각형 목장을 걷는 것을 좋아합니다. 목장은 N×NN \times N개의 단위 칸으로 나뉘어 있습니다.

베시(Bessie)는 목장의 왼쪽 위 칸에서 출발하여 목장의 중앙(NN이 짝수일 때는 중앙에 가까운 칸)에 도착하는, 가능한 한 가장 긴 산책 경로를 계획했습니다. 이 경로는 출발한 뒤 모든 칸을 정확히 한 번씩 지나갑니다.

베시는 시계 방향 나선형 경로(아래 그림 참고)를 따라 걷기로 했습니다. 각 칸을 방문하는 순서를 나타내는 지도를 출력하는 프로그램을 작성하세요.

예를 들어 N=3N=3과 N=4N=4일 때 방문 순서는 다음과 같습니다.

1  2  3        1  2  3  4
8  9  4       12 13 14  5
7  6  5       11 16 15  6
             10  9  8  7

입력

첫째 줄에 정수 NN이 주어집니다.

출력

NN개의 줄에 걸쳐 출력합니다. 각 줄에는 NN개의 정수를 공백으로 구분하여 출력하며, 각 정수는 해당 칸을 방문하는 순서를 나타냅니다.

예제5

  1. 예제 1

    입력
    1
    
    예상 출력
    1
    
  2. 예제 2

    입력
    2
    
    예상 출력
    1 2
    4 3
    
  3. 예제 3

    입력
    3
    
    예상 출력
    1 2 3
    8 9 4
    7 6 5
    
  4. 예제 4

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

    입력
    5
    
    예상 출력
    1 2 3 4 5
    16 17 18 19 6
    15 24 25 20 7
    14 23 22 21 8
    13 12 11 10 9