Algorithm

[Java] 백준 별 찍기 2441번 2442번 2443번

로춘남 2022. 3. 28. 21:00
728x90


다양한 별 찍기를 통해 Java의 for문을 한 번 생각해보기.

2441번 - https://www.acmicpc.net/problem/2441

i값을 증가시키면서 찍히는 *의 갯수를 줄여나가는 별 찍기. *를 찍기전에 " " 공백을 찍어준다.

for (int i = 0; i < N; i++) {
            for (int j = 0; j < N; j++) {
                if (i > j) {
                    System.out.print(" ");
                } else {
                    System.out.print("*");
                }
            }
            System.out.println("");
        }

*가 찍히기전에 공백이 찍혀야 하므로, i가 j보다 크다고 가정할 때 " "를 출력. 첫 째줄은 i가 0 j가 0이니 if문의 else를 적용 받아 *를 입력값 5 만큼 찍어주고, 이후에는 i가 1 j 1부터시작하는데, i=1, j=1일때 공백하나 출력. i=1, j=2인 시점부터 *를 출력해주면 된다.


2442번 - https://www.acmicpc.net/problem/2442

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

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

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

        for(int i = 1; i<=N; i++){
            //공백찍기
            for(int j = 1; j<i; j++){
                System.out.print(" ");
            }
            for(int k = (2*N)-(i*2-1); k>0; k--){
                System.out.print("*");
            }
            System.out.println();
        }
728x90