[JAVA/2442번] 별 찍기 - 5

고지훈·2021년 9월 6일
1

Algorithm

목록 보기
9/68
post-thumbnail

문제


입력 및 출력


풀이

import java.io.*;

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

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

결과 및 해결방법

[결과]

[정리]

해결방법

  • 이번 문제는 가운데 별을 기준으로 양쪽의 별의 개수가 같게 출력되어야 한다.

  • 하지만 자세히 살펴보면 이전에 풀었던 별 찍기 문제를 응용하는 문제이다.

    첫 반복문은 총 5행으로 이루어져 있기 때문에 N개의 반복 횟수만큼 조건을 설정하였다.

    두 번째 반복문은 j가 N-1 크기부터 j가 i보다 값이 크면 공백문자를 추가하였다. 이렇게 하면 위의 예제와 같이 공백의 개수가 i 크기가 커짐에 따라 줄어드는 것을 확인할 수 있다.

    세 번째 반복문은 별을 출력하기 위한 반복문으로, 별의 개수는 홀수개로 이루어져 있으므로 k는 0부터 i*2의 값과 k가 작거나 같을 경우를 조건으로 하여 별을 출력하였다. 이렇게 하면 i가 0일 경우 한 개의 별을 찍게 되고, i가 증가함에 따라 2개씩 증가하는 것을 확인할 수 있다.

profile
"계획에 따르기보다 변화에 대응하기를"

0개의 댓글