Algorithm/백준 단계별로 풀어보기

[백준 단계별로 풀어보기-심화] 별 찍기 - 7 (JAVA)

JunFe 2024. 3. 20. 13:40
반응형

문제

예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.


입력

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


출력

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


예제 입출력

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

풀이

-> 이런 문제는 n 값에 따른 그림이나 숫자를 적어보면서 변화하는 부분을 보고 그 다음에 코드를 작성해본다.

위와 같이 적어보았고, 다이아몬드를 한번에 그리지 않고, 중간부분까지 큰 삼각형과 아래부분 뒤집어진 작은 삼각형을 따로 그렸다. 코드를 보면 나눠진 부분은 확인할 수 있다.


코드

import java.util.Scanner;

public class Main {
    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        sc.close();
        for(int i=0;i<num;i++){
            // start make diamond by *
            for(int j=0;j<num-i-1;j++){
                System.out.print(" ");
            }

            for(int j=0;j<2*i+1;j++){
                System.out.print("*");
            }
            System.out.println();
        }
        for(int i=num-1;i>0;i--){
            for(int j=num-i;j>0;j--){
                System.out.print(" ");
            }

            for(int j=2*i-1;j>0;j--){
                System.out.print("*");
            }
            System.out.println();
        }
    }
}
반응형