[Java] 별찍기 - 7

정석·2024년 2월 18일
0

알고리즘 학습

목록 보기
13/67
post-thumbnail

문제

별 찍기 문제이며 아래와 같이 풀었다.

풀이

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

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

        for (int i = 1; i <= n; i++) {
            //공백
            for (int j = 1; j <= n - i; j++) {
                System.out.print(" ");
            }
            //별
            for (int j = 1; j <= 2 * i - 1; j++) { // 홀 수 구하는 로직
                System.out.print("*");
            }
            System.out.println();
        }

        for (int i = n - 1; i >= 1; i--) {
            //공백
            for (int j = 1; j <= n - i; j++) {
                System.out.print(" ");
            }
            //별
            for (int j = 1; j <= 2 * i - 1; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

특히 별찍기 문제가 어려운 거 같다. 이해하기보다 먼저 로직을 여러번 해보며 익히면 좋을 거 같다.
별을 찍을 때 무조건 홀수 단위로 찍게 되는데 이 특징 때문에 2n-1 을 사용함을 알게 되었다.

0개의 댓글