[JAVA] 백준 2444번 (별찍기 -7)

2D3·2022년 8월 5일
0

백준

목록 보기
7/22

문제: 예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.

입력: 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
출력: 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.

예제입력: 5     예제출력:
                                *
                               ***
                              *****
                             *******
                            *********
                             *******
                              *****
                               ***
                                *
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int num = Integer.parseInt(br.readLine());
        br.close();

        StringBuilder sb = new StringBuilder();

        for (int i = 1; i <= num; i++) {
            for (int j = 1; j <= num-i; j++) {
                sb.append(" ");
            }
            for (int k = 1; k <= 2*i-1; k++) {
                sb.append("*");
            }
            sb.append("\n");
        }
        for (int i = num-1; i >= 1; i--) {
            for (int j = 1; j <= num-i; j++) {
                sb.append(" ");
            }
            for (int k = 1; k <= 2*i-1; k++) {
                sb.append("*");
            }
            sb.append("\n");
        }
        System.out.print(sb);
    }
}

빈칸
n-1개부터 시작해서 n-2.. 0이 됐다가 다시 n-1개가 됨 => n-i

2n-1로 늘어났다가 줄어듦

흐름
1. Bufferedreader를 사용하여 수(num)을 입력받음
2. 상단별 반복 for문 (1부터 num까지 반복)
빈칸 for (1부터 num-i까지 반복)
별 for (1부터 2i-1까지 반복)
3. 하단별 반복 for문 (num-1부터 1까지 반복)
빈칸 for (1부터 num-i까지 반복)
별 for (1부터 2i-1까지 반복)

profile
return Success;

0개의 댓글