규도자 개발 블로그

[백준/2441/자바(Java)] 별찍기 - 4 본문

알고리즘/풀이

[백준/2441/자바(Java)] 별찍기 - 4

규도자 (gyudoza) 2018. 9. 17. 03:04
[백준_1110_파이썬] 더하기 사이클

문제

첫째 줄에는 별 N개, 둘째 줄에는 별 N-1개, ..., N번째 줄에는 별 1개를 찍는 문제
하지만, 오른쪽을 기준으로 정렬한 별 (예제 참고)을 출력하시오.

입력

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

출력

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

입출력 예

입력출력
5*****
 ****
  ***
   **
    *

풀이

import java.util.Scanner;
 
class Main {
  public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    int a = scan.nextInt();
    int b = a;
    if (!(1 <= a && a <= 100)) {
      System.exit(0);
    }
    for(; a>0 ; a--) {
      for(int i = b; i > a; i--) {
        System.out.print(" ");
      }
      for(int i = 0; i < a; i++) {
        System.out.print("*");
      }
      System.out.println();
    }
  }// end of main
}

설명

입력한 자연수만큼 별을 찍는데 반대순서로 찍으면서 또 우정렬까지 해야하는 문제이다. 폰트문제로 본 글에서는 별모양이 꼭 역피라미드 형태 처럼 보이지만 모노폰트로 출력하는 터미널창에서는 정상적으로 우정렬되어 출력될 것이다. 여태까지 했던 별찍기 문제들의 응용이라 할 수 있는데, 배열을 거꾸로 출력하고 우정렬 하는 갯수만큼 공백(' ')을 넣어준다고 생각하면 쉽다.

Comments