[프로그래머스] 직사각형 별찍기_JavaScript

ne_ol·2022년 1월 14일
0
post-thumbnail

문제 설명

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

제한 조건

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

예시

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

기본 solution 코드

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);
    console.log(b);
});

문제 풀이

process.stdin.setEncoding('utf8');
process.stdin.on('data', data => { //문제가 넣어주는 data 값 (5 3, 2 2)
    const n = data.split(" "); //5 3, 2 2 를 스페이스로 나누어준다 -> ['5', '3'], ['2', '2']
    const a = Number(n[0]), b = Number(n[1]); //a=5,3 ; b=2,2
    for (let i = 0; i < b; i++) { //몇(b) 줄 반복
        let result = ""; //출력 변수 지정
        for (let j = 0; j < a; j++) { // 한 줄에 들어갈 데이터 수(a) 결정
            result += "*"; //출력 변수에 *을 담아준다
        }
        console.log(result)
    }
});

풀이 설명

기본 solution 코드에서 멘붕이 왔었다. 같은 팀원 분이 담당했던 문제라 내가 풀어보기 전에 설명을 들어서 다행이다. for문의 이해도를 요구한 문제다.

사용 함수

undefined

다른 풀이

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

다른 풀이 설명

  1. 사용된 함수
  • .repeat(count): 문자열을 주어진 횟수만큼 반복해 붙인 새로운 문자열을 반환

(출처: https://developer.mozilla.org/ko/)

  1. 풀이
  • const row = '*'.repeat(a) -> ***** 을 만든다.
  • for문을 통해 b번 row를 반복한다.
  1. .repeat()과 for문을 잘 사용했다.
profile
개발되는 중입니다.

0개의 댓글