개발 공부/알고리즘

[프로그래머스 알고리즘] 직사각형 별찍기 JavaScript

U_D 2022. 3. 13. 20:39

1. 문제 설명

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

 

 

2. 제한 조건

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

 

 

3. 예시

  • 입력
5 3
  • 출력
*****
*****
*****

 

4. 풀이

  • 중첩 for문을 활용
  • 바깥 for문과 안쪽 for문 사이에 출력할 변수의 초기화 진행
process.stdin.setEncoding('utf8');
process.stdin.on('data', data => { //입력받은 숫자를 'data에 받는다'
    const n = data.split(" "); // data(입력받은 숫자)를 배열로 변경
    const a = Number(n[0]), b = Number(n[1]); //a는 한줄에대한 별의 갯수, b는 몇줄 출력
    for(let i=0; i<b; i++){ //i을 선언해주고 몇줄(b)만큼 반복
        let str = ""; //출력할 변수 선언
        for(let j=0; j<a; j++){ // j선언후 별을 한줄에 몇개 찍을지 반복
            str = str + "*" //출력할 변수에 별을 담는다
        } 
    console.log(str) // 출력
    }
});

 

  • repeat 함수 활용 1
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(let i =0; i < b; i++){ // b만큼 반복
        console.log(row)
    }

});

 

  • repeat 함수 활용 2
process.stdin.setEncoding('utf8');
process.stdin.on('data', data => {
    const n = data.split(" ");
    const a = Number(n[0]), b = Number(n[1]);
    console.log((('*').repeat(a)+`\n`).repeat(b))  // \n은 줄바꿈
});

 

 

정답화면