[Java][BOJ] 별 찍기-2

Ga02·2023년 9월 4일
0

BOJ

목록 보기
55/62

문제

첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제

하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.

입력

첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.

출력

첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.

예제입력1

5

예제출력1

		*
   **
  ***
 ****
*****

My Solution

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

public class Main {
	public static void main(String[] args) throws NumberFormatException, 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=0; j<N-i; j++) {
				sb.append(" ");
			}
			for(int k=0; k<i; k++) {
				sb.append("*");
			}
			sb.append("\n");
		}
		System.out.println(sb);
	}
}

👀 Comment

역시나 어려웠다.. 일반 별찍기를 의외로 한번에 성공해서 오른쪽 정렬 별찍기도 혹시나? 했지만 역시나였다.

내가 생각했던 방식은 printf와 지시자를 이용하여 오른쪽으로 정렬하는 방법이었는데 이렇게 하면 별 하나하나가 오른쪽으로 5번째칸에 정렬되어서 찍히더라…

결국 혼자 해내지 못하고 구글링으로 풀었다.

for문을 3개를 사용했어야 하는 문제였음. 빈칸을 띄어쓰기로 채운다는 생각이 안들고 그냥 공석으로 둬야한다는 생각이 있어서 이 방식을 생각해내지 못했다..

profile
IT꿈나무 댓츠미

0개의 댓글