반응형
이번에는 2번 문제와 같이 오른쪽 벽에 붙어 별을 그려나가는 방식이다.
좌우 대칭으로 숫자를 바꿔 생각하면 편하다.
 

[ 백준 2439번 문제 ] 별 찍기 - 2 - JAVA

이전 별 찍기에서 생각했던 공백을 생각해야 하는 문제가 나왔다.N * N의 크기로 생각했을 때 공백과 별 위치를 생각하면 풀면 된다. [ 백준 2438번 문제 ] 별 찍기 - 1 - JAVA단계적 풀이라는 카테고

p-coding.tistory.com

문제 핵심

  • 1 <= N <= 100
  • N 별 개수를 시작으로 점점 줄여나가 왼쪽 벽에 붙여 나가는 과정
  • 즉 공백이 0 ~ N - 1까지 별의 개수가 N ~ 1 개까지 

풀이 과정

조건문을 사용하여 공백부터 나왔던 값을 별부터 나오게 끔 변경하면 된다.

 

1. i를 통해 N번 반복

2. j를 통해 j < i 인 경우에만 공백 처리, i 값이 증가함에 따라 0, 1, 2, 3, 4 ~ N - 1번 공백을 출력

3. 그 외의 조건은 모두 별로 처리

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

 

다음은 지금까지 배운 문제를 토대로
1~4번 중 2개를 합쳐서 풀어보는 5 ~ 6번 문제이다.
9번까지 쭉 뇌를 깨어보는 별 찍기를 해보자.

전체 코드

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

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

        System.out.println(str);
    }
}
반응형

+ Recent posts