[Lv1] 정사각형 별찍기

이말감·2022년 8월 11일
0

Programmers

목록 보기
22/32

프로그래머스 Lv1 정사각형 별찍기

문제

링크

풀이

process.stdin.setEncoding('utf8');
process.stdin.on('data', data => {
    const n = data.split(" ");
    const a = Number(n[0]), b = Number(n[1]);
    let star = '';
    for (let i = 0; i < b; i++) {
        for (let j = 0; j < a; j++) {
            star += '*';
        }
        star += '\n';
    }
    console.log(star);
    return star;
});

for문을 이용해서 star 라는 변수에 별을 반복해서 넣었고, 안쪽 반복문이 완료될 때마다 '\n'을 붙여서 줄바꿈이 되도록 했다.

다른 사람들의 풀이를 참고했더니 자바스크립트에 repeat이라는 내장 함수를 알게 되었다.

repeat

  • repeat() 메서드는 문자열을 주어진 횟수만큼 반복해 붙인 새로운 문자열을 반환한다.
str.repeat(count);
  • 매개변수

    • count : 문자열을 반복할 횟수. 0과 양의 무한대 사이의 정수
  • 반환값

    • 현재 문자열을 주어진 횟수만큼 반복해 붙인 새로운 문자열

새로운 풀이

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

repeat 함수를 이용해서 다시 풀어보았다.
먼저 '*'.repeat(a) + '\n' 을 이용해서 한 줄에 a개씩 별이 찍히도록 했고, 마지막에 +'\n'을 통해 줄바꿈이 되도록 했다.
그리고 repeat을 한 번 더 사용해서 ('*'.repeat(a) + '\n').repeat(b); 이렇게 앞서 별을 찍었던 한 줄을 b번 반복했다.

profile
전 척척학사지만 말하는 감자에요

0개의 댓글