[Java] 백준 2444번: 별 찍기 - 7

U·2023년 2월 28일

백준

목록 보기
15/116

💻 문제

![](https://velog.velcdn.com/images/kn9012/post/f994ddb4-6a7e-4934-8def-c2d851136b27/image.png


일단 이해하자🤔

  • 처음에 이해한 방법은 2 * N - 1번째 줄까지 출력하는 첫번째 for문을 작성하고 안에 세 개의 for문을 넣었다. 즉,
    그림과 같이 공백 별 공백으로 이루어졌다고 생각했는데 다음과 같은 에러가 떴다. 찾아보니 정답과 출력은 같으나 공백 혹은 빈 줄이 출력될때 이와 같은 에러가 뜬다고 한다.
  • 생각해보니 오른쪽 공백은 굳이 필요하지 않았던 것이다!! 오른쪽 공백을 없애니 맞았다.

👀 풀이

import java.io.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader bfr = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bfw = new BufferedWriter(new OutputStreamWriter(System.out));

        int N = Integer.parseInt(bfr.readLine());

        for (int i = 1; i <= N - 1; i++) {
            for (int j = N - i; j > 0; j--) {
                bfw.write(" ");
            }

            for (int j = 0; j < (2 * i) - 1; j++) {
                bfw.write("*");
            }
            bfw.write("\n");
        }

        for(int i = N; i > 0; i--) {

            for (int j = N - i; j > 0; j--) {
                bfw.write(" ");
            }

            for (int j = 0; j < (2 * i) - 1; j++) {
                bfw.write("*");
            }
            bfw.write("\n");
        }

        bfr.close();
        bfw.flush();
        bfw.close();
    }
}

💡 결과


아쉬웠던 점••

  • 처음 문제를 풀 때 도저히 어떻게 풀지 모르겠어서 다른 문제를 먼저 풀고 넘어왔는데 예제에 대입해서 풀어보니 생각보다 간단했다.
profile
백엔드 개발자 연습생

0개의 댓글