© 2025 anveloper.dev
GitHub·LinkedIn·Contact

목차

  • 문제
  • 입력
  • 출력
  • 예제
  • 풀이
  • 코드
  • 복잡도
풀이 목록으로 돌아가기

BOJ 2441 - 별 찍기 - 4

2023-05-25
BOJ
브론즈 III
java
원본 문제 보기
구현

문제

BOJ 2441 - 별 찍기 - 4

N이 주어졌을 때, 왼쪽 정렬로 별을 N개부터 1개까지 줄여가며 찍되, 줄어든 만큼 앞에 공백을 추가하여 오른쪽 정렬된 역삼각형을 출력하라.

입력

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

출력

N줄에 걸쳐 역삼각형 별을 출력한다.

예제

입력출력
5***** **** *** ** *

풀이

Java의 String.repeat()으로 공백과 별을 간결하게 생성한다.

  1. i번째 줄(0-indexed)에 공백 i개와 별 (N-i)개를 이어 붙인다
  2. " ".repeat(i)와 "*".repeat(N-i)로 각 줄을 구성한다
  3. StringBuilder에 모아서 한 번에 출력한다

핵심 아이디어: Java 11의 String.repeat() 메서드를 활용하면 반복문 없이 한 줄로 패턴을 생성할 수 있다.

코드

package day549;
 
import java.io.*;
 
public class Day549BOJ2441별찍기4 {
  public static void main(String[] args) throws Exception {
    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++)
      sb.append(" ".repeat(i)).append("*".repeat(N - i)).append('\n');
    System.out.print(sb);
    br.close();
  }
}

복잡도

  • 시간: O(N²)
  • 공간: O(N²)