[백준] 2522번: 별 찍기 -12 - JAVA, 자바

xxx-sj·2023년 8월 29일
0

알고리즘

목록 보기
11/46

문제접근

이 문제도 2개의 영역으로 나누어 보면 된다.
위에 영역은 입력받은 N만큼 순회하고 [1 ~ N]
아래는 N - 1만큼 순회하며 출력하면 된다. [1 ~ N -1]
윗 값은 공백은 점차 줄어들고 별은 점자 층가한다.
가장 바깥 for문은 i부터 N까지 돌며 내부 공백을 찍는 for문은
초기값은 N이고, i보다 작을 때 까지 찍으며, 별은 초기값은0 i보다 작을 때 까지 찍으면된다.

전체코드

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 N = Integer.parseInt(br.readLine());
        StringBuilder sb = new StringBuilder();

        for(int i = 1; i <= N; i++) {
            for(int j = N ; j > i; j--) {
                sb.append(" ");
            }

            for(int j = 0; j < i; j++) {
                sb.append("*");
            }
            sb.append("\n");
        }

        for(int i = 1; i < N; i++) {
            for(int j = 0; j < i; j++) {
                sb.append(" ");
            }

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

        System.out.println(sb);

    }
}

상세코드

for(int i = 1; i <= N; i++) {
    for(int j = N ; j > i; j--) {
        sb.append(" ");
    }

    for(int j = 0; j < i; j++) {
        sb.append("*");
    }
    sb.append("\n");
}

아래영역은 N - 1 만큼 순회하며 공백이 점차증가하고 별은 점차 감소한다.

for(int i = 1; i < N; i++) {
    for(int j = 0; j < i; j++) {
        sb.append(" ");
    }

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

System.out.println(sb);
profile
틀려도 일단 기록하자

0개의 댓글