Algorithm

[알고리즘] 직사각형 별찍기

montmer27 2026. 2. 6. 09:11

문제 요구사항

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

제한 조건
n과 m은 각각 1000 이하인 자연수입니다.

풀이

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();
        for(int i = 0; i< b; i++){
            for(int j = 0; j < a; j++){
                System.out.print('*');
            }
            System.out.println();
        }
    }
}

실패 요인

정답 확인 전

근데 왜 가로줄(j = 1; j < a; j++)은 1부터 시작해야 하는거지? 이해가 안 간다.

정답 확인 후

아 다시보니까 줄바꿈이 아니라 별을 한 번 더 찍었다.

 

잘한 점

중첩 반복문을 잘 활용했다.

예상보다 가로줄이 1줄 더 길게 나왔을 때 반복문을 변형하여 잘 대처하였다(최초 정답)

인사이트

출력이 이상한데 순회자도 이상하지 않다면 출력 명령을 다시 보도록 하자.

Github 링크

https://github.com/ginsengcandy/Coding-Test-Practice/commit/2f1fd4abaa65d25eaf076dabb368f22e41793d8e

 

[level 1] Title: 직사각형 별찍기, Time: 273.90 ms, Memory: 101 MB -BaekjoonHub · ginsengcandy/Coding-Test-Practice@2f1fd

+ 별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요.</p>

github.com

 

문제 출처

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

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr