본문 바로가기
백준

[백준] 2522번 : 별 찍기 - 12 – JAVA [자바]

by Hongwoo 2022. 4. 26.
반응형

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

 

2522번: 별 찍기 - 12

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

www.acmicpc.net

 


  • 문제

 

 


  • 문제 풀이

백준 2522번 별 찍기 - 12는 브론즈 3 난이도의 구현 문제이다. 이 문제에서도 n이 주어지고 예제에 나와있는 패턴처럼 출력해주면 되는 문제이다. 

 

우선 예제를 보겠다. n이 3이고 별이 1개에서 시작해서 3개를 찍고 다시 1개로 내려온다.

 

즉, 처음에 스페이스가 n - 1개에서 시작한다. 그리고 별은 1개에서 시작해서 우선 n개가 된다.

 

이중 for-loop을 써서 이 문제를 푸는데 바깥 for-loop은 i = 1부터 i = n이 될 때까지 이다. 그리고 내부 for-loop은 2개가 있다. j = n - i부터 시작해서 j = 1까지 스페이스를 추가해준다. 또 하나의 for-loop을 만든다. 이 for-loop은 j = 1부터 j가 i가 될 때까지 *을 추가해준다.

 

그러면 다음과 같은 결과를 얻는다.

 

  *
 **
***

 

마지막으로 또 하나의 이중 for-loop을 만든다. 바깥 for-loop은 i = 1부터 i는 n - 1까지이다. 첫 번째 내부 for-loop은 j = 1부터 j = n-1까지 스페이스를 추가해준다. 또 하나의 for-loop을 만드는데 j = 1부터 j = n-i까지 *을 추가해준다.

 

이렇게 다 하고 나면 예제처럼 다음과 같은 결과를 얻을 수 있다.

 

  *
 **
***
 **
  *

 


  • 코드

 

import java.io.*;
import java.util.*;
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 = 1; i <= n; i++) {
            for (int j = n - i; j > 0; j--) {
                sb.append(" ");
            }
            for (int j = 1; j <= i; j++) {
                sb.append("*");
            }
            sb.append("\n");
        }
        for (int i = 1; i <= n-1; i++) {
            for (int j = 1; j <= i; j++) {
                sb.append(" ");
            }
            for (int j = 1; j <= n-i; j++) {
                sb.append("*");
            }
            sb.append("\n");
        }
        System.out.print(sb);
    }
}

 


  • 후기

이 문제도 간단한 별 찍기 문제였다.

 

반응형

댓글