본문 바로가기
ALGORITHM/백준 With Node.js

[백준] 2439번/ 별 찍기 - 2 / Node.js

by LAY CODER 2021. 4. 21.
728x90

문제

 

첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제

하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.

 

입력

 

첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.

 

출력

 

첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.

 

예제 입력 1

 

5

 

예제 출력 1

 

    *

   **

  ***

 ****

*****

 

CODE

const readline = require('readline');

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout,
});

rl.on('line', function (line) {
    const num = +line;

    // 1번 ==============================================================

    // star = [' ',' ',' ',' ',' ']
    let star = new Array(num).fill(' ');

    for (let i = num - 1; i >= 0; i--) {
        star[i] = '*';
        console.log(star.join(''));
    }

    // =================================================================

    // 2번 ==============================================================

    let star = '';
    let blank = '';

    // i -> 1,2,3,4,5
    for (let i = 1; i <= num; i++) {
        star += '*';
        // num - i -> 4,3,2,1,0
        for (let j = 0; j < num - i; j++) {
            blank += ' ';
        }
        console.log(blank + star);
        blank = '';
    }

    // =================================================================

    rl.close();
}).on('close', function () {
    process.exit();
});

 

 

Comment

 

1번은 빈 Array를 만들어서 fill()함수를 통해 공백을(' ') 추가하여 뒤에서부터 별을 하나씩 추가해가며 찍어주는 방법이고

 

2번은 2중 For문을 이용하여 문자열에 넣어준 다음에 출력하는 방법이다.

 

 

아래는 Array.fill() 참고

 

3. Array.join() / Array.fill() / Array.split()

Array.prototype.join() 배열의 모든 요소를 연결해 하나의 문자열로 만드는 method. const elements = ['Fire', 'Air', 'Water']; console.log(elements.join()); // expected output: "Fire,Air,Water" console...

laycoder.tistory.com

 

References


gurtn.tistory.com/33

 

 

댓글