백준 알고리즘 2439번:별 찍기 – 2

백준 알고리즘 2439번:별 찍기 – 2 문제를 풀어보았다.

문제

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

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

입력

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

출력

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

백준 알고리즘 2439번 입력값과 출력 결과값
입력값과 출력 결과값

문제 풀이

먼저 입력받은 값을 loop만큼 돌리면서 loop를 한번 더 돌리면서 별(*)를 찍어준다. loop를 한번 더 돌리는 이유는 각 줄에 5번 돌면서 별도 같이 갯수가 증가 해야하기 때문. 한가지 조건이 더 붙어서 (공백 수 = 입력값 – 별 수)

정리해 보면 구현해야할 로직은 아래와 같다.

  1. loop를 입력받은 숫자만큼 각 줄마다 출력
  2. loop를 돌면서 각 줄에서 별(*) 갯수를 증가시키면서 출력
  3. 공백 수 = 입력값 – 별 수
const readline = require("readline")

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

const input = []

rl.on("line", function(line) {
    input.push(line)
}).on("close", function() {
    const num = parseInt(input[0]);
    let string = ''

    for(let i = 1; i <= num; i++){
        for(let k = i; k < num; k++){
            string += ' '
        }
        for(let j = i; j >0; j--){
            string += '*'
        }
        string += '\n'
    }
    console.log(string)
})

Leave a Comment