[프로그래머스] Lv.1 직사각형 별찍기 (JS)

아름·2023년 12월 26일
0

알고리즘

목록 보기
25/26
post-custom-banner

🔎 문제

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

제한 사항

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

예시

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

🔓 풀이 과정

고민

1) 주어진 숫자를 배열로 전환하기
2) 첫 줄에 a만큼 * 찍기
3) 총 b줄 출력하기

나의 풀이

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

  // 입력값 b(3) 만큼 몇 줄 찍을지 반복문 돌리기
  for (let i = 0; i < b; i++) {
    // stars 변수를 초기화 해주기
    let stars = "";

    // 위 for문이 한번 돌아갈 때마다 입력값 a(5) 만큼 찍기
    for (let j = 0; j < a; j++) {
      stars += "*";
    }
    // 콘솔에 현재까지 저장된 stars 값을 찍기 (*****)
    console.log(stars);

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

그 밖의 풀이

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

// 이중 for문이 아닌 repeat 메소드 사용하기
profile
내 꿈은 개발자
post-custom-banner

0개의 댓글