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

별 나선 채우기

Bronze I 브론즈 I
난이도
2s
시간 제한
256MB
메모리 제한
0
맞았습니다!!
0
제출 수
0.0%
정답률
레이팅

의견: 0

설명

어느 미술관에 \(N \times N\) 격자 모양의 설치 미술이 있다. 작가는 격자의 왼쪽 위 칸에서 출발하여 오른쪽 방향으로* 을 찍기 시작하여, 시계 방향으로 안쪽을 향해 나선을 그린다.

한 바퀴(코일)를 다 돌고 나면 나선은 안쪽으로 두 칸씩 들어간다. 즉 인접한 두 코일 사이에는 항상 한 칸의 공백이 남아, 나선이 하나의 이어진 별의 길로 또렷하게 보이도록 한다.

구체적으로, 가장 바깥 코일은 격자의 테두리를 따라 그려진다. 위쪽 변을 왼쪽에서 오른쪽으로, 오른쪽 변을 위에서 아래로, 아래쪽 변을 오른쪽에서 왼쪽으로 별로 채운 뒤, 왼쪽 변은 맨 아래에서 위로 올라가되 맨 윗 칸의 바로 아래 칸까지만 채운다(맨 윗 칸 바로 아래 한 칸은 비워 둔다). 그 다음 경계를 사방으로 두 칸 좁혀 같은 방식으로 다음 코일을 그리며, 더 이상 그릴 칸이 없을 때까지 반복한다.

완성된 \(N \times N\) 격자를 출력하여라. 별이 있는 칸은 *, 그 외의 칸은 공백이다.

제약

\(1 \le N \le 200\)

입력 형식

첫째 줄에 격자의 크기 \(N\) 이 주어진다. (\(1 \le N \le 200\))

출력 형식

\(N\) 개의 줄에 걸쳐 완성된 격자를 출력한다. 별이 있는 칸은 *, 나머지 칸은 공백으로 출력하되, 각 줄의 오른쪽 끝 공백은 출력하지 않는다.

예제 1
입력
5
출력
*****
    *
* * *
*   *
*****
설명

시계 방향 안쪽 나선이다. 왼쪽 변에서 한 칸을 비워(공백) 나선이 안쪽 코일로 이어지도록 한다.

예제 2
입력
1
출력
*
설명

격자가 1x1이면 별 하나뿐이다.

문제 정보

riseoj 작성

출처 Original

평가 및 의견

별 나선 채우기

개요
출제자 난이도 Bronze I 브론즈 I 의견 0 / 50 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

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

풀이 제출

별 나선 채우기

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