백준

[JAVA] 백준 2444번 별 찍기 - 7

DEV장화 2023. 3. 20. 19:30
728x90
반응형
문제

 

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

 

 

입력

 

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

 

 

출력

 

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

 

 

풀이
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
            int num = scanner.nextInt();

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

        for (int i = 2*num-3; i > 0; i-=2) {
            // 아래쪽 별
            for (int j = ((2 * num - 1) - i) / 2; j > 0; j--) {
                System.out.print(" ");
            }
            for (int j = i; j > 0; j--) {
                System.out.print("*");
            }
            System.out.println();
        }

    }
}

 

 

1.

for (int i = 1; i <= 2*num-1; i+=2) {

첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력하라고 했기 때문에

i는 2×N-1 숫자까지 출력하되 2씩 늘어나도록 for문을 돌려주었다.

 

 

2.

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

 왼쪽에 공백을 주기위해 2×N-1에 /2를 한 숫자까지 " " 공백 출력을 시켰다.

 

 

3.

for (int j = 0; j < i; j++) {
    System.out.print("*");
}

j는 i숫자까지 *을 출력했다.

 

System.out.println();

한 줄이 끝나면 줄띄움을 시킨다.

 

반대쪽도 응용하여 반대로 찍히도록 한다. 

 

 

728x90
반응형