본문 바로가기
백준

[백준] 2443번 : 별 찍기 - 6 – JAVA [자바]

by Hongwoo 2022. 4. 26.
반응형

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

 

2443번: 별 찍기 - 6

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

www.acmicpc.net

 


  • 문제

 

 


  • 문제 풀이

백준 2443번 별 찍기 - 6은 브론즈 3 난이도의 구현 문제이다. 이 문제도 주어지는 패턴대로 별들을 출력하면 되는 문제이다. 

 

이 문제에서는 우선 숫자 n이 주어졌을 때 2 × n - 1개에서 시작하고 별이 1개가 될 때까지 2개씩 줄여가면서 대칭을 이루게 출력하면 된다.

 

이 문제도 이중 for-loop을 이용해서 푼다. 바깥 for-loop은 i는 0부터 n-1까지이다. 그리고 안에는 2개의 for-loop이 또 있다. 

 

첫 번째는 바로 스페이스를 추가해주는 for-loop이다. 이 for-loop은 j = 0부터 i-1까지 스페이스를 추가해주면 된다.

 

그다음 for-loop은 바로 *을 추가해주는 for-loop이다. 이 for-loop은 j = 1부터 j = 2 × (n - i) - 1까지 *을 추가해주면 된다.

 

이런 식으로 코드를 작성해주면 다음과 같은 결과를 얻을 수 있다.

 

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

 


  • 코드

 

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

 


  • 후기

다른 별 찍기 문제들과 마찬가지로 되게 쉬웠다.

 

반응형

댓글