백준 알고리즘 2439번:별 찍기 – 2 문제를 풀어보았다.
문제
첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제
하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.
입력
첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
출력
첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.

문제 풀이
먼저 입력받은 값을 loop만큼 돌리면서 loop를 한번 더 돌리면서 별(*)를 찍어준다. loop를 한번 더 돌리는 이유는 각 줄에 5번 돌면서 별도 같이 갯수가 증가 해야하기 때문. 한가지 조건이 더 붙어서 (공백 수 = 입력값 – 별 수)
정리해 보면 구현해야할 로직은 아래와 같다.
- loop를 입력받은 숫자만큼 각 줄마다 출력
- loop를 돌면서 각 줄에서 별(*) 갯수를 증가시키면서 출력
- 공백 수 = 입력값 – 별 수
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)
})