[Programmers] 직사각형 별찍기 - JS

devMag 개발 블로그·2022년 1월 14일

프로그래머스 문제 링크

문제

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

제한 조건

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

입출력 예시

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

초기 코드

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
엔터를 치는 횟수 = m
이라고 생각하고 풀었다.

for문이 두 개 필요하며 안쪽에 있는 for문이 n값, 바깥쪽이 m값을 기준으로 길이를 설정했다.
console.log의 경우 한 번 출력하면 줄바꿈이 되버리므로 엔터 역할을 하게 된다.

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 temp = "";
        for (let j = 0; j < a; j++){
            temp += "*";
        }
        console.log(temp)
    }
});

다른 사람 풀이

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만큼 출력한다.

profile
최근 공부 내용 정리 Notion Link : https://western-hub-b8a.notion.site/Study-5f096d07f23b4676a294b2a2c62151b7

0개의 댓글