COCO World

[Javascript/자바스크립트] 프로그래머스 Lv.1 - 직사각형 별찍기 본문

코딩테스트/프로그래머스

[Javascript/자바스크립트] 프로그래머스 Lv.1 - 직사각형 별찍기

코코월드주인장 2023. 1. 27. 10:43

🐙 문제 설명

이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어진다.

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

🐙  제한사항

  • n과 m은 각각 1000 이하인 자연수이다.

🐙  입력

      5 3

 

🐙  출력

      *****

      *****

      *****

 

🐙  초기 문제 세팅

process.stdin.setEncoding('utf8');
process.stdin.on('data', data => {
    const n = data.split(" ");
    const a = Number(n[0]), b = Number(n[1]);
    console.log(a);
    console.log(b);
});

🐙  작성 솔루션 1

process.stdin.setEncoding('utf8');
process.stdin.on('data', data => {
    const n = data.split(" ");	// 입력받은 숫자는 data에 담긴다
    const a = Number(n[0]), b = Number(n[1]);	// a는 출력한 별 갯수, b는 별의 줄 갯수
    
    for(let m = 0; m<b; m++) {	// b개의 줄만큼 출력하는 동안
        let star = "";	// star라는 변수 공간 안에
        for(let n = 0; n<a; n++ ) {	
            star = star + '*'	// 한 줄에 a개 만큼의 별 갯수가 추가된다
        }	// 끝났다면, 그 다음줄의 m for문을 반복하러 위로 이동
    console.log(star)    
    }
});

🐙  작성 솔루션 2

   : repeat메소드 활용시 코드가 간편해진다.

process.stdin.setEncoding('utf8');
process.stdin.on('data', data => {
    const n = data.split(" ");	// 입력받은 숫자는 data에 담긴다
    const a = Number(n[0]), b = Number(n[1]);	// a는 출력한 별 갯수, b는 별의 줄 갯수
    
    const row = '*'.repeat(a);	// '*'를 a번만큼 반복하는 메소드repeat
    for(let m = 0; m<b; m++) {	// b개의 줄만큼 출력하는 동안
    	console.log(row);
    }
});