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

 

문제 설명

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

 

제한 조건

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

 

문제 풀이

// 주어진 부분
process.stdin.setEncoding('utf8');
process.stdin.on('data', data => {
    const n = data.split(" ");
    const a = Number(n[0]), b = Number(n[1]);
    
    //풀이 부분
    let star = '';
    for (let i = 0; i < b; i++) {
        for (let j = 0; j < a; j++) {
            star += '*';
        }
        star += '\n';
    }
    console.log(star);
});

for문과 복합 대입연산자 +=(기존 변수의 값에 값을 더함)을 활용하였다. 위에 주어진 부분은 뭔지 모르겠음..근데 n은 data값을 split("")으로 나눠주고 a, b는 나눠진 n을 배열로 두고 숫자로 가져오는 것 같았다.

 

다른 사람 풀이

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

});

repeat()* 메소드를 이용해 a를 가로로 반복시키고 b로 세로열을 추가했다.

 

 

* repeat()

문자열을 주어진 횟수만큼 반복해 붙인 새로운 문자열을 반환한다.

str.repeat(count);

count : 문자열을 반복할 횟수. 0과 양의 무한대 사이의 정수([0, +∞)).