#170
Gold V

Grid Traveler

스페셜 저지
시간 제한
1s
메모리 제한
1024MB
제출
9
정답
8
맞힌 사람
5
정답 비율
83.3%

문제

승현이는 N×NN\times N 격자에 살고 있다. N2N^2개의 각 칸에는 11부터 N2N^2까지의 정수 중 하나가 적혀있고, 각 칸에 적힌 수는 모두 다르다.

승현이는 아래 규칙을 지키면서 격자 안에서 여행하려고 한다.

  • 11이 적힌 칸에서 시작한다.
  • i(1≤i<N2)i(1 ≤ i < N^2)가 적힌 칸에서 정확히 ii번 이동하여 i+1i + 1이 적힌 칸에 도달한다. 이 과정을 방문이라 하자.
  • 한 번의 이동은 격자의 경계를 벗어나지 않으며 상하좌우로 한 칸 이동하는 것을 의미하며, 각 방문 과정에서 같은 칸으로 두 번 이상 이동할 수 없다.

최종적으로 N2N^2이 적힌 칸에 도달할 수 있다면 승현이의 여행이 가능하다고 본다. 격자의 크기와 각 칸에 적힌 수에 따라 승현이의 여행이 가능할 수도, 불가능할 수도 있다. 격자의 크기가 주어질 때, 조건을 만족하면서 승현이의 여행이 가능한 격자를 만들어 주자.

입력

첫째 줄에 NN이 주어진다. (2≤N≤1 000)(2 ≤ N ≤ 1\,000)

출력

승현이의 여행이 가능한 N×NN\times N 격자가 없다면, 첫째 줄에 NO를 출력한다.

가능한 격자가 있다면, 첫째 줄에 YES를 출력하고, 둘째 줄부터 NN개의 줄에 걸쳐 각 줄에 격자의 행에 해당하는 NN개의 정수를 공백으로 구분하여 출력한다. 다시 말해, i+1i + 1번째 줄의 jj번째 정수는 격자의 ii번째 행의 jj번째 열에 위치한 칸에 적힌 수를 의미한다.

정답이 여러 개라면 그중 하나만 출력한다.

예제 입력 1

2

예제 출력 1

YES
1 2
3 4
문제를 만든 사람
조서현
알고리즘 분류
코드 제출

코드를 제출하려면 로그인이 필요합니다.

로그인
내 제출

제출 내역이 없습니다.

맞은 사람
#순위사용자언어시간메모리코드 길이
10213🥇
옥찬호
Rust30ms9844KB2182B
10070🥈
박승현
C++34ms13144KB1072B
10075🥉
박성재
C++38ms17240KB2806B
102284
황준영
PyPy67ms70908KB367B
101145
조서현
Python408ms111056KB470B
난이도 투표
Gold V1명 투표· 7개월 전
로그인 후 AC 받으면 투표할 수 있습니다.
전체 제출
#사용자문제결과언어시간메모리코드 길이제출 시간
10228
맞았습니다
PyPy67ms70908KB367B2026. 10. 04. 04:46
10213
맞았습니다
Rust30ms9844KB2182B2026. 10. 03. 23:36
10114
맞았습니다
Python408ms111056KB470B2026. 10. 02. 05:41
10076
맞았습니다
C++44ms17240KB2806B2026. 10. 01. 12:33
10075
맞았습니다
C++38ms17240KB2806B2026. 10. 01. 12:29
10074
맞았습니다
C++41ms17240KB2944B2026. 10. 01. 12:28
10073
출력 형식 에러
C++--67B2026. 10. 01. 12:26
10071
맞았습니다
C++39ms13144KB1072B2026. 10. 01. 08:53
10070
맞았습니다
C++34ms13144KB1072B2026. 10. 01. 08:50