변수의 기록

(코테) 별 찍기 반복문 본문

카테고리 없음

(코테) 별 찍기 반복문

불광동 물주먹 2025. 4. 24. 00:45

문제

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

하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.

입력

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

 

출력

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

예제 입력 1 

5

예제 출력 1 

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

 

 

 

 

내가 제시한 답

 

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int A = sc.nextInt();

        for (int i = 1; i <= A; i++) {
            for (int j = 1; j <= A; j++) {
                if (j > A - i) {
                    System.out.print("*");
                } else {
                    System.out.print(" ");
                }
            }
            System.out.println(); // 줄바꿈
        }
    }
}

 

 

회고,  for문을 2중으로 사용하지 않고 좀 더간결한 방법이 없을까? 고민하던중 .

repeat  를 확인  

 

   String.repeat(int count)

  • Java 11 이상에서 사용 가능
  • 문자열을 지정한 횟수만큼 반복해서 만들어줌

 

수정한 코드 

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        int n = new Scanner(System.in).nextInt();
        for (int i = 1; i <= n; i++) {
            System.out.println(" ".repeat(n - i) + "*".repeat(i));
        }
    }
}

 

로 2중 for문 없애고 간결한 코드 완성.