알고리즘 문제풀이/Beakjoon

[백준] 별 찍기 모음 (JAVA)

joah.k 2023. 2. 1. 17:03
728x90

백준에서 별 찍기 문제는 1~3까지 bronze 레벨5, 4~9까진 bronze 레벨 3 정도 수준이다. 

 


백준 2438. 별 찍기 1  - 기본 중의 기본 !

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

 

2438번: 별 찍기 - 1

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

www.acmicpc.net

import java.util.Scanner;

public class Main {
    // 백준 2438. 별 찍기 1
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();

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

예제 입력 1 복사

5

예제 출력 1 복사

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

 

 


백준 2439. 별 찍기 2 - 기본 별 찍기의 역방향 버전 

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

 

2439번: 별 찍기 - 2

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

www.acmicpc.net

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
        public static void main(String[] args) throws IOException {
            // 2439번. 별 찍기 -2
            // 별찍기 + 오른쪽 정렬

            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            int N = Integer.parseInt(br.readLine());
            br.close();

            StringBuilder sb = new StringBuilder();

            for (int i = 1; i <= N; i++) {
                for (int j = 1; j <= N-i; j++) { // 공백 처리
                    sb.append(' ');
                }
                for (int k = 1; k <= i; k++) {  // * 처리
                    sb.append('*');
                }
                sb.append('\n');
            }
            System.out.print(sb);
        }
    }

 

예제 입력 1 복사

5

예제 출력 1 복사

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

 

 


백준 2439. 별 찍기 3 

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

 

2440번: 별 찍기 - 3

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

www.acmicpc.net

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        // 2440.별 찍기 3

        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();  // 5
        for(int i=0; i<n; i++){
            for(int j=0; j<n-i; j++){
                System.out.print("*");
            }
            System.out.println("");
            }
    }
}

예제 입력 1 복사

5

예제 출력 1 복사

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

 

 

 


백준 2441. 별 찍기 4 

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

 

2441번: 별 찍기 - 4

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

www.acmicpc.net

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());

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

예제 입력 1 복사

5

예제 출력 1 복사

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

 

 


백준 2442. 별 찍기 5

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

 

2442번: 별 찍기 - 5

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

www.acmicpc.net

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        
        for(int i=0; i<n; i++){
            for(int j=0; j<n-i-1; j++){
                System.out.print(" ");
            }
            for(int k=0; k<(i*2)+1; k++){
                System.out.print("*");
            }
            System.out.println();
        }

    }
}

예제 입력 1 복사

5

예제 출력 1 복사

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

 

 


백준 2443. 별 찍기 6

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

 

2443번: 별 찍기 - 6

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

www.acmicpc.net

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());

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

예제 입력 1 복사

5

예제 출력 1 복사

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

 

 

 


백준 2444. 별 찍기 7

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

 

2444번: 별 찍기 - 7

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

www.acmicpc.net

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());

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


    }
}

예제 입력 1 복사

5

예제 출력 1 복사

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

 

 

 


백준 2445. 별 찍기 8

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

 

2445번: 별 찍기 - 8

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

www.acmicpc.net

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());

        StringBuilder sb = new StringBuilder();
        for(int i=0; i<n; i++){
            for(int a=0; a<i+1; a++){
                sb.append("*");
            }
            for(int b=0; b<2*(n-1)-2*i; b++){
                sb.append(" ");
            }
            for(int a=0; a<i+1; a++){
                sb.append("*");
            }
            sb.append("\n");
        }

        for(int i=n-1; i>=1; i--){  //  4 3 2 1
            for(int a=1; a<=i; a++){
                sb.append("*");
            }
            for(int b=1; b<= 2*n - i*2; b++){
                sb.append(" ");
            }
            for(int c=1; c<=i; c++){
                sb.append("*");
            }
            sb.append("\n");
        }
        System.out.println(sb);
    }
}

예제 입력 1 복사

5

예제 출력 1 복사

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

 

 


백준 2446. 별 찍기 9

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

 

2446번: 별 찍기 - 9

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

www.acmicpc.net

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());

        StringBuilder sb = new StringBuilder();

        for(int i=0; i<n; i++){
            for(int k=0; k<i; k++){
                sb.append(" ");
            }
            for(int j=0; j<(n*2-1)-i*2; j++){
                sb.append("*");
            }
            sb.append("\n");
        }

        for(int i=0; i<n-1; i++){ // 3 5 7 9
            for(int k=0; k<n-2-i; k++){
                sb.append(" ");
            }
            for(int j=0; j<3+2*i; j++){
                sb.append("*");
            }
            sb.append("\n");
        }

        System.out.println(sb);
    }
}

예제 입력 1 복사

5

예제 출력 1 복사

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

 

728x90