Algorithm/Programmers(Java)

[프로그래머스/Lv.1] 직사각형 별찍기

비망노트 2022. 12. 22. 21:30

문제 설명

이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다.
별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요.

 

제한사항

- n과 m은 각각 1000 이하인 자연수입니다.

 

입출력 예

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

 

 

 

⭕ 풀이

import java.util.Scanner;

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

        StringBuilder sb = new StringBuilder();

        for(int i=0;i<b;i++){
            for(int j=0;j<a;j++){
                sb.append("*");
            }
            sb.append("\n");
        }

        System.out.println(sb.toString());
    }
}

 

2중 for문을 사용해 별다른 처리과정없이

직사각형에 모두 별을 채우면 되는 가장 기본이되는 별찍기문제다.

 

내부for문에서 *을 주어진 길이만큼 찍어주고

바깥for문 마지막에서 개행을 더해주는 방식으로 풀이하였다.

 

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

이렇게 풀이하여도 되지만 StringBuilder 를 사용했을때 좀 더 속도가 잘나왔던 기억이있어

개행이나 여러줄 출력을 사용할때 되도록이면 StringBuilder를 사용하는 편이다.

 

 

 

 

 

-출처

https://school.programmers.co.kr/learn/courses/30/lessons/12969