[JAVA/2444번] 별 찍기 - 7

고지훈·2021년 9월 6일
0

Algorithm

목록 보기
11/68
post-thumbnail

문제


입력 및 출력


풀이


import java.io.*;

class Main {
    public static void main(String args[]) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        int N = Integer.parseInt(br.readLine());

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

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

결과 및 해결방법

[결과]

[정리]

해결방법

  • 별 찍기(5) 문제와 별 찍기(6) 문제를 합쳐서 다이아몬드를 출력하였고, 모든 별을 출력할 때 두 번 겹치기 때문에 반복문의 조건을 1 빼서 한 번만 출력이 되도록 설정하였다.
  • 이 전의 문제는 String에 바로 더하였지만 메모리 초과가 떠서 StringBuilder를 사용해 문제를 해결하였다.
profile
"계획에 따르기보다 변화에 대응하기를"

0개의 댓글