본문 바로가기
Java/백준문제풀이

[백준] 2441번: 별 찍기 - 4 [JAVA]

by ehdghk154 2022. 2. 16.

출처: https://www.acmicpc.net/problem/2441

문제

첫째 줄에는  N, 둘째 줄에는  N-1, ..., N번째 줄에는  1개를 찍는 문제

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

입력

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

출력

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


알고리즘

이번 문제는 이전 별 찍기 - 3 문제를 오른쪽 정렬한 것과 같이 만들면 되는 문제입니다.

입력이 5일 경우

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

과 같이 공백이 0이라면 별이 5개, 공백이 1개면 별이 4개, ... , 공백이 4개면 별이 1개와 같은 식으로 공백을 하나씩 추가하면서 별을 출력하시면 됩니다.

 


코드

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));
		int N = Integer.parseInt(br.readLine());
		
		StringBuilder sb = new StringBuilder();
		for(int i = N; i > 0; i--) {
			for(int j = i; j < N; j++) { // 공백 추가
				sb.append(' '); // i 값이 1씩 줄어서 공백이 1개씩 추가
			}
			for(int j = i; j > 0; j--) { // 별 추가
				sb.append('*'); // i 값이 1씩 줄어서 별이 1개씩 감소
			}
			sb.append('\n');
		}
		
		System.out.println(sb);
	}
}

 

이 글의 알고리즘이나 코드에서 지적할만한 부분은 댓글에 남겨주시면 저에게 많은 힘이 됩니다!

 

댓글