알고리즘

알고리즘(Javascript) 프로그래머스 "직사각형 별찍기"

changy0ng 2022. 7. 19. 09:40

문제 설명

이 문제에는 표준 입력으로 두 개의 정수 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]);

});

 

까지는 미리 작성되어있는 부분이라 크게 어렵지는 않다고 생각이 들었습니다.

위에 부분은 data라는 변수명에 n을 공백기준으로 나누어주고 a변수명에 공백기준으로 나눈 첫번째 숫자, b변수명에 공백기준으로 나눈 두번째 숫자가 들어가는데 

우선 console.log(a)와 console.log(b)로 출력해본결과 5와 3 그리고 2와 2가 나오는 것을 볼수가 있었습니다.

이렇게 Number로 숫자로 바꿨던것을 다시 '*'로 바꿔야 했기에 먼저 생각나는 함수는 repeat()함수였습니다. 하지만 repeat() 함수는 string일때 써야하므로 새로운 변수명에 '*'를 넣어주고 repeat을 a만큼 해주면서 거기에 엔터키(줄바꿈)인

\n 까지 넣어주는게 핵심이였습니다.

 

그리하여 ``에 전체를 감싸주고 c 변수명에 저장해준것을 다시 b만큼 repeat 해주면 완성이였습니다.

실행결과 또한 잘 나왔습니다