이번 문제는 n을 입력하면
2n-1번째 줄까지 별을 출력한다
이때 n번째줄까지는 2n-1개부터 시작해서 홀수로 줄어드는 별을 출력하고
n+1번째 줄까지는 홀수로 별을 늘리는 것을 출력한다.
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class qn2446{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int num = Integer.parseInt(br.readLine()); //n입력
int blank=0;
int count = num*2-1;
for(int i=num;i>0;i--){//n번째 줄까지 반복하되, 별은 줄어들게 i--
for(int j=0;j<blank;j++){ //앞에 공백을 하나씩 늘려주는 for문
bw.write(" ");
}
for(int j=0;j<(i*2)-1;j++){ //별 출력하게 홀수로 출력하도록
bw.write("*");
}
bw.write("\n");
blank ++;//공백은 점점 늘려간다
}
for(int i=1;i<=num;i++){//n번 반복하되 별은 하나씩 시작한다.
if(i>1){
for(int j=0;j<blank-1;j++){
bw.write(" ");
}
for(int j=0;j<(i*2)-1;j++){
bw.write("*");
}
bw.write("\n");
}
blank --; //이때는 공백은 점차 줄어듦
}
bw.flush();
bw.close();
br.close();
}
}
위에는 줄어들고 아래는 늘어나는 구조인데
사실 아래 코딩은 일반별찍기를 고치지않고 그대로 갖다쓴것이다.
blank는 단순하지만 첫째줄 벗어나면 그때부터 하나씩 늘어나도록 for문을 짰고 한줄이 끝나면 공백의 수는
하나씩 늘어나도록 설정했다.
'study > baekJun' 카테고리의 다른 글
[백준10996/별찍기/for문/자바]백준10996 별찍기 - 21 (0) | 2020.05.14 |
---|---|
[백준2523/별찍기/for문/자바]백준2523 별찍기-13 (0) | 2020.05.14 |
[백준10817/자바/for문/if문]백준10817 세 수 (0) | 2020.05.13 |
[백준5543/자바] 백준5543 상근날드 (0) | 2020.05.12 |
[백준/자바/java/while]백준 1110 더하기 사이클 (0) | 2020.04.09 |