:ledger: 문제 설명

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

:one: 제한사항

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

:two: 입출력 예

:pushpin: 2-1) 입력

5 3

:pushpin: 2-2) 출력

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

:ledger: 문제 풀이

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

  for (let i = 0; i < b; i++) {
    let stars = "";

    for (let j = 0; j < a; j++) {
      stars += "*";
    }

    // 콘솔에 현재 까지 저장된 stars 값을 찍는다. (*****)
    console.log(stars);

    // i가 b(3) 보다 작을 경우 맨 위로가 다시 for문을 시행한다.
  }
});

:computer: 풀이

  1. 두개의 정수 n,m 이 주어지고 길이가 n, 세로가 m으로 5와 3을 입력했을 때 출력과 같이 나오려면 반복문을 사용해야한다.
  2. 먼저 입력 값 b(3) 만큼 for문을 사용하여 stars 변수를 초기화 해준다.
  3. 첫 번째 for문이 한 번 돌때마다 입력 값 a(5) 만큼 반복문을 돌려준다.
  4. console.log에 현재 까지 저장된 stars의 값을 찍어준다.

:fire: 다른 사람의 풀이 참고

repeat 메서드를 사용해서 간단하게 구현했다.

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);
  }
});

:pushpin: repeat() 메서드

메서드에 주어진 수 만큼 반복해서 붙인 새로운 문자열을 반환해준다. 예시는 아래와 같음

let str = "*";
let strRepeat = str.repeat(5); // *****

출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges