본문 바로가기

Algorithm/[BOJ] - JAVA

[백준] 10991 : 별 찍기 - 16 JAVA 풀이

괄호 안에 있는 것이 공백의 개수라고 하면 N = 3일 때 출력해야 할 내용은 다음과 같다.

(n-1)*
(n-2)*(n-2)*
(n-3)*(n-2)*(n-2)*

행마다 한 행에서 첫 번째 별이 나오기까지의 공백의 개수가 달라지는 것과,

별과 공백이 번갈아서 나오는 것에서 규칙을 찾아 코드를 작성했다.

import java.io.*;
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();
        
        String str = "* ";
        String space = " ";

        for(int i=0;i<N;i++){
            sb.append(space.repeat(N-i-1)).append(str.repeat(i+1)).append('\n');
        }
        System.out.print(sb);
      }
}

 

시간이 좀 지나고 다시 풀어봤다.

달라진 건 거의 없지만 그래도 올려본다.

import java.io.*;
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());
        String space = " ";
        String star = "* ";
        StringBuffer sb = new StringBuffer();
        for(int i=n-1;i>=0;i--){
            sb.append(space.repeat(i)).append(star.repeat(n-i)).append("\n");
        }
        System.out.print(sb);
    }
}