코딩테스트/JAVA

[JAVA/백준 2443번] 별 찍기 - 6

할루솔이 2023. 10. 13. 19:49
반응형

https://www.acmicpc.net/problem/2443

 

2443번: 별 찍기 - 6

첫째 줄에는 별 2×N-1개, 둘째 줄에는 별 2×N-3개, ..., N번째 줄에는 별 1개를 찍는 문제 별은 가운데를 기준으로 대칭이어야 한다.

www.acmicpc.net

 

문제

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

별은 가운데를 기준으로 대칭이어야 한다.

입력

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

출력

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

예제 입력 1  

5

예제 출력 1  

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

👉 풀이과정

1. 처음 공백은 출력되지 않기 때문에 조건을 j < i로 설정한다.

2. 조건에서 1, 3, 5, ...이렇게 홀수로 숫자가 변경되어야 하기 때문에 변수를 선언한다.

3. 만약 5를 입력했을 경우, 처음부터 별 2×N-1가 모두 출력되어야 하기 때문에 j < num - a로 한다.

4. 반복문이 끝나면 a + 2를 한다.

 

📌 제출코드

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //별
        int num = scan.nextInt();
        char star = '*';
        char blank = ' ';
        int a = 1;
        for(int i=1;i<=num;i++){
            //공백
            for(int j=1;j<i;j++) {
                System.out.print(blank);
            }
            //별
            for(int j=0;j<2*num-a;j++){
                System.out.print(star);
            }
            a += 2;
            System.out.println();
        }
    }
}

 

a처럼 변수를 따로 설정하는 것 말고 다른 방법이 있을 것 같은데.. 오늘은 머리가 굳었나보다..^_ㅠ

 

반응형