코딩테스트/Programmers (프로그래머스)

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

지윤공원🌳 2021. 5. 7. 23:02
728x90

📖 문제 설명

이 문제에는 표준 입력으로 두 개의 정수 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]); // a에는 열의 값, b에는 행의 값을 초기화
    let str = '*'.repeat(a); // 열의 값 a만큼 '*'을 반복한 후 str에 넣음
    for(let i=0; i<b; i++){ // 행의 개수만큼 반복
        console.log(str); // str을 출력
    }
    // console.log()가 새로 실행될 때마다 자동 줄바꿈이 진행되므로 줄바꿈 코드를 넣을 필요 X
});

 

🎤 코드 설명

접근 방법 :

이중 반복문을 사용하지 않기 위해 행과 열의 원리를 사용했습니다.

  • 두 개의 숫자를 입력받은 data를 split(" ")를 통해 배열로 만듭니다.
  • 변수 a에는 열의 값을 Number형으로 변환한 후 넣어주고, 변수 b에는 행의 값을 Number형으로 변환한 후 넣어줍니다.
  • 변수 str에 열의 값(a)만큼 '*'을 반복한 것을 초기화합니다.
  • 행의 개수(b)만큼 반복을 수행합니다.
    • str을 출력합니다.

 

📜 채점 결과

정확성: 100.0

합계: 100.0 / 100.0

 

💬 배운 것

  • repeat함수를 통해서 반복문을 사용하지 않고도 문자를 원하는 개수만큼 붙여서 문자열로 만들 수 있습니다. 

 

 

 

코딩테스트 연습 - 직사각형 별찍기

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

programmers.co.kr

 

728x90