Notice
Recent Posts
Recent Comments
Link
Dev.baelanche
[백준 10997] 별 찍기 - 22 본문
반응형
단순 구현 문제다.
반복문 두번으로 가로줄, 세로줄을 긋고 두번째 줄을 예외처리 하는 방법으로 풀었다.
두번째 줄은 공백이 없으니 이 부분 주의해야한다..!
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int width = 1 + (n-1)*4;
int height = 1;
for(int i=0; i<n-1; i++) {
if(i == 0) height += 6;
else height += 4;
}
char a[][] = new char[height][width];
for(int i=0; i<height; i++)
for(int j=0; j<width; j++)
a[i][j] = ' ';
int left = 0;
int right = width;
int top = 0;
int bottom = height;
for(int i=0; i<height; i++) {
for(int j=0; j<width; j++) {
if(i % 2 == 0) {
if(j >= left && j < right)
a[i][j] = '*';
}
}
if(i < height/2) {
left++;
if(i > 1)
right--;
} else {
if(i == height/2) right = height/2 - 1;
left--;
right++;
}
}
for(int i=0; i<width; i++) {
for(int j=0; j<height; j++) {
if(i % 2 == 0) {
if(j >= top && j < bottom)
a[j][i] = '*';
if(i == width-1 && j == 1)
a[j][i] = ' ';
}
}
if(i < width/2) {
top++;
bottom--;
} else {
if(i == width/2) top = width/2 + 2;
top--;
bottom++;
}
}
StringBuilder sb = new StringBuilder();
for(int i=0; i<height; i++) {
for(int j=0; j<width; j++) {
if(i == 1) {
sb.append(a[i][0]);
break;
}
sb.append(a[i][j]);
}
sb.append("\n");
}
System.out.println(sb.toString());
}
}
처음으로 문제집을 끝냈다!!~~
반응형
'Data Structure & Algorithm > PS - JAVA' 카테고리의 다른 글
[백준 14889] 스타트와 링크 (0) | 2019.06.20 |
---|---|
[백준 문제집] N과 M 시리즈 (0) | 2019.06.19 |
[백준 10993] 별 찍기 - 18 (0) | 2019.06.18 |
[백준 10757] 큰 수 A+B (0) | 2019.06.18 |
[백준 1965] 상자넣기 (0) | 2019.06.18 |
Comments