본문 바로가기

프로그래머스/JavaScript

[프로그래머스 JavaScript] Level1 직사각형 별찍기

- 정수 n과 m이 주어집니다.

- *을 가로길이가 n, 세로 길이가 m인 모양으로 출력합니다.

 

 

[초기 코드]

초키 코드를 확인해보면 date는 (n, m)이고 이것을

a = Number(n), b=Number(m)으로 해놨습니다.

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); // 5
    console.log(b); // 3
});

 

이제 한 줄에 n개의 *이 찍힐 수 있도록 repeat을 이용하고,

방금 전 생성한 한 줄을 m번 반복해줍니다.

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); // *을 a번 반복
    for(var i = 0; i < b; i++) { // row을 b번 반복
        console.log(row);    
    }    
});

아래와 같이 반복할 수도 있습니다.

const row = `${'*'.repeat(a)}\n`; // *이 a번 반복
console.log(row.repeat(b)) // row를 b번 반복

위에 사용된 `string ${expression}`으로 사용되는 Template literals(템플릿 리터럴)입니다.

문자열과 응용 표현식을 섞어서 사용할 수 있으며, javascript의 특수문자들도 사용할 수 있습니다.

\n은 줄바꿈을 의미합니다.

 

 

 

 


String.repeat() : 문자열을 주어진 횟수만큼 반복해 새로운 문자열을 반환하는 메서드

 

정규식

\n : 줄바꿈 문자