문제

문제 3016

대각 지그재그 배열

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

문제 설명


자연수 N이 주어질 때, 크기 N × N의 대각 지그재그 배열을 출력하라.
대각 지그재그 배열의 의미는 입출력 예시와 도움말을 참조하라.

입력 설명

첫째 줄에 자연수 n이 주어진다. (1 ≤ n ≤ 1000)

출력 설명

N × N 크기의 대각 지그재그 배열을 출력한다.

입력 예시

5

출력 예시

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

힌트


대각 지그재그 배열의 정의는 다음과 같이 구성된다.
  1. arr[1][1] = 1
  2. 2 ≤ k ≤ N인 임의의 정수 k에 대하여,
  • k가 홀수이면 arr[k][1] = arr[k – 1][1] + 1,
    1 ≤ i ≤ k – 1인 임의의 i에 대해 arr[k][i + 1] = arr[k][i] + 1, arr[i][k] = arr[i + 1][k] + 1
  • k가 짝수이면 arr[1][k] = arr[1][k – 1] + 1,
    1 ≤ i ≤ k – 1인 임의의 i에 대해 arr[k][i + 1] = arr[k][i] – 1, arr[i][k] = arr[i + 1][k] – 1

출처

AND2024 프로그래밍챌린지