6월 3일 알고리즘(직사각형 별찍기)

이정민·2022년 6월 3일
0

알고리즘

목록 보기
18/23

출처: https://programmers.co.kr/learn/courses/30/lessons/12969

process.stdin.setEncoding('utf8');
process.stdin.on('data', data => {
    const n = data.split(" "); 
    const a = Number(n[0]), b = Number(n[1]); 
    for(let i=0; i<b; i++){ // 몇 줄(b)만큼 반복
        let answer =""//출력할 변수 선언
        for(let j=0; j<a; j++){ // 한줄에 별을 몇 개 찍을지 반복
            answer  = answer + "*" //선언해둔 변수에 별을 추가
        } 
    console.log(answer) // 출력
    }
});

다른 사람 풀이를 보니 더 효율적인 답안이 있어 비교해본다.

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

str.repeat(count); repeat메소드를 사용하여 반복문을 한번만 사용하여 작성 할 수 있었다.

이 과정에서 repeat()을 한번 더 작성하면


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

반복문없이 깔끔하게 해결할 수 있다.

0개의 댓글