문제 분류 수업 진도 대회 채점현황 순위 질문게시판
게임
스도쿠 타이핑 리듬 타자게임 타이핑 테트리스 타이핑 인베이더 타이핑 지뢰찾기 8192 공룡게임 타이핑 플래피버드 랭킹
로그인

7026 : 2D 달팽이 수 생성

•시간제한: 1.000 S •메모리제한: 256 MB •제출: 1 •통과: 1 •만든사람: suakii

7026 : 2D 달팽이 수 생성

시간 1.000s · 메모리 256MB · 제출 1 · 정답 1

문제 설명

양의 정수 $N$이 주어졌을 때, $N \times N$ 크기의 2차원 배열의 왼쪽 위($0, 0$)에서 시작하여 $1$부터 $N^2$까지의 숫자를 시계 방향 달팽이 모양으로 채워 나간 결과를 출력하는 프로그램을 작성하십시오.
예를 들어, $N = 3$일 때의 달팽이 배열은 다음과 같습니다.
1 2 3
8 9 4
7 6 5

[제약 조건]
• 배열 크기 $N$: $1 \le N \le 20$ (정수)

입력 설명

첫째 줄에 배열의 크기 $N$이 주어집니다. ($1 \le N \le 20$)

출력 설명

달팽이 순서대로 채워진 $N \times N$ 크기의 배열을 $N$개의 줄에 걸쳐 한 행씩 공백으로 구분하여 출력합니다.

입력 예시
COPY
복사되었습니다!

3

출력 예시
COPY
복사되었습니다!

1 2 3
8 9 4
7 6 5

도움

시계 방향(우 $\to$ 하 $\to$ 좌 $\to$ 상)의 이동을 위한 방향 벡터(우: (0, 1), 하: (1, 0), 좌: (0, -1), 상: (-1, 0))를 만들어 배열에 숫자를 채워 나갑니다. 배열의 범위를 벗어나거나 이미 다른 숫자가 채워진 칸을 만나면 다음 방향으로 전환하는 방식으로 구현합니다.

출처/분류

NOTICE  —  BFStudy OJ 정보샘
애들아, 문제 많이 풀고 게임 잠깐 하는거지?
— 정보샘