반응형

 

이전 별 찍기에서 생각했던 공백을 생각해야 하는 문제가 나왔다.
N * N의 크기로 생각했을 때 공백과 별 위치를 생각하면 풀면 된다.

 

[ 백준 2438번 문제 ] 별 찍기 - 1 - JAVA

단계적 풀이라는 카테고리를 달고 운영함으로써본래의 의미를 지키기 위해 별 찍기 - 10 문제를 포스팅 하려고 했으나레벨 문제로 존재하기 때문에 1 ~ 10까지 포스팅 해보려고 한다.별 찍기를 통

p-coding.tistory.com

 

문제 핵심

  • 1 <= N <= 100
  • N - 1 공백개수를 시작으로 0까지, 별은 1 ~ 5까지 그려나가는 구조

풀이 과정

별 찍기 1에서 사용했던 방식으로 공백과 별을 그려야 하는 조건을 맞추어 코드 구현하면 된다.

1에서는 구조를 설명하기 위해 2차원 배열을 사용하였지만 배열없이 바로 StringBuilder에 값을 추가 하면 된다.

 

1.  N개의 줄을 반복문을 통해 생성

2. 한 줄마다 j가 ( N - i - 1 ) 보다 작을 때 공백 출력, i가 증가함에 따라 공백 감소

3. 아닌 경우에는 별 출력

for (int i = 0; i < N; i++) {
    for (int j = 0; j < N; j++) {
        if(j < N - i - 1) {
            stringBuilder.append(' ');
        }
        else {
            stringBuilder.append('*');
        }
    }
    stringBuilder.append('\n');
}

아직까지는 괴랄한 별 찍기가 아니라서 괜찮은 것 같다.
이 차원 배열 안에 어떻게 그릴 것인가
그게 중점으로 보인다.

전체 코드

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

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

        for (int i = 0; i < N; i++) {
            for (int j = 0; j < N; j++) {
                if(j < N - i - 1) {
                    stringBuilder.append(' ');
                }
                else {
                    stringBuilder.append('*');
                }
            }
            stringBuilder.append('\n');
        }

        System.out.println(stringBuilder);

    }
}
반응형

+ Recent posts