Algorithm - 직사각형 별찍기

박태환·2021년 10월 29일
0

Algorithm

목록 보기
14/20
post-thumbnail

문제 설명

이 문제에는 표준 입력으로 두 개의 정수 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]);
  const star = "*".repeat(a);
  for (let i = 0; i < b; i++) {
    console.log(star);
  }
});

풀이 설명

process.stdin.setEncoding('utf8');
process.stdin.on('data', data => { //입력받은 숫자를 'data에 받는다'
    const n = data.split(" "); // data(입력받은 숫자)를 배열로 변경
    const a = Number(n[0]), b = Number(n[1]); //a는 한줄에대한 별의 갯수, b는 몇줄 출력
    console.log(a);
    console.log(b);
});

처음부터 이렇게 입력이 되어있어 당황했다..!
대충 어떤 뜻인지 파악한 뒤 진짜 코드만 몇 줄 추가했다.
직사각형으로 되어있기 때문에 repeat로 별을 반복해서 찍어주고 반복문으로 b만큼 돌려주는 방법을 선택했다.

다른 사람의 풀이

process.stdin.setEncoding('utf8');
process.stdin.on('data', data => {
    const n = data.split(" ");
    const a = Number(n[0]), b = Number(n[1]);
    const star = `${'*'.repeat(a)}\n`;

    console.log(star.repeat(b));
});

다른 사람의 풀이 설명

역시나 다른 풀이를 보니 정규식으로 더 짧게 풀어 쓴 방법이 있었다.

느낀 점

별찍기는 기본이라고 생각했다가 큰 코 다칠 뻔 했다.
직사각형 말고 다른 별도 찍어보면서 더 연습해야겠다;;

profile
mekemeke

0개의 댓글