[Level1] 직사각형 별찍기

문제

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

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

예시

입력

5 3

출력

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

문제 풀이

처음에는 각종 언어를 처음 배우게 되면 마주하는 삼각형 모양으로 별 찍기 문제처럼 '문제에서 주어지는 n과 m값을 이용해서 각각 for 문을 돌려서 출력을 하면 되겠다' 라고 생각하고 코드를 작성했다.

for(let i=0; i<n; i++){
	for(let j=0; j<m; j++){
    	console.log("*");
    }
}

하지만 for문을 두번이나 돌리는건 비효율적이기도 하고 (애초에 console.log의 경우 자동으로 줄바꿈이 되기 때문에 원하는 결과처럼 출력되지도 않는 문제가..) JavaScript 에서 제공되는 reapeat 함수를 이용해서 직사각형에서 한줄을 만들어내고 m만큼 반복해서 출력하여 해결하였다.

정답 코드

process.stdin.setEncoding('utf8');
process.stdin.on('data', data => {
    const n = data.split(" ");
    const a = Number(n[0]), b = Number(n[1]);
    let line = "";
    
    line= "*".repeat(a);
    for(let i=0; i<b; i++){
        console.log(line);
    }
});

좋은 웹페이지 즐겨찾기