RiseOJ는 solved.ac와 제휴 관계가 없습니다. 티어 아이콘 © solved.ac. solved.ac
포럼
R01541

별 숫자 달팽이 격자

Silver V 실버 V
난이도
2s
시간 제한
256MB
메모리 제한
0
맞았습니다!!
0
제출 수
0.0%
정답률
레이팅

의견: 0

설명

어느 창고에서는 \(N \times N\) 크기의 선반 격자에 번호를 매긴다. 가장 바깥 왼쪽 위 칸에서 시작하여 시계 방향 달팽이(나선) 모양으로 격자를 돌면서, 지나가는 칸에 \(1, 2, 3, \dots, N^2\) 을 차례대로 적는다.

구체적으로는 맨 윗줄을 왼쪽에서 오른쪽으로 채우고, 이어서 가장 오른쪽 열을 위에서 아래로, 맨 아랫줄을 오른쪽에서 왼쪽으로, 가장 왼쪽 열을 아래에서 위로 채운 뒤, 안쪽으로 한 겹 들어가 같은 과정을 반복한다. 모든 칸이 채워질 때까지 계속한다.

예를 들어 \(N = 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

완성된 격자를 출력하되, 각 수는 \(N^2\) 의 자릿수만큼의 너비에 맞춰 오른쪽 정렬하고, 같은 줄의 수들은 공백 한 칸으로 구분한다.

제약

\(1 \le N \le 100\)

입력 형식

첫째 줄에 정수 \(N\) (\(1 \le N \le 100\)) 이 주어진다.

출력 형식

\(N\) 개의 줄에 걸쳐 완성된 격자를 출력한다. 각 칸의 수는 \(N^2\) 의 자릿수와 같은 너비로 오른쪽 정렬하며, 한 줄 안에서 이웃한 두 수는 공백 한 칸으로 구분한다. 줄 끝에 불필요한 공백을 두지 않는다.

예제 1
입력
1
출력
1
설명

격자가 한 칸뿐이므로 1만 출력한다.

예제 2
입력
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
설명

바깥에서부터 시계 방향으로 1, 2, 3, ... 을 채워 넣는다. 마지막에 안쪽 중심 칸이 25가 된다. 모든 수는 \(N^2 = 25\) 의 자릿수(2칸)에 맞춰 오른쪽 정렬한다.

문제 정보

riseoj 작성

출처 Original

평가 및 의견

별 숫자 달팽이 격자

개요
출제자 난이도 Silver V 실버 V 의견 0 / 50 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

별 숫자 달팽이 격자

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8