JavaScript 백준 온라인 알고리즘 공부
백준 2439번 JavaScript 문제
별 찍기 - 2
https://www.acmicpc.net/problem/2439
const fs = require("fs");
const [n, ...arr] = (process.platform === "linux"
? fs.readFileSync("/dev/stdin").toString()
: `5`
)
.trim()
.split("\n");
let stars = "";
let answer = "";
// Array.length를 응용
for (let i = 1; i <= n; i++) {
stars += "*";
let air = " ".repeat(n - stars.length);
answer += `${air}${stars}` + "\n";
}
//////////////////////////////////
// or slice()
let air = " ".repeat(n);
for (let i = 1; i <= n; i++) {
stars += "*";
air = air.slice(1);
answer += `${air}${stars}` + "\n";
}
//////////////////////////////////
console.log(answer);
repeat()
, slice()
에다가Array.length
라는 배열길이도 응용해 볼 수도 있다. 메소드를 어떻게쓰든 입출력방식을 바꾸는게 아니면 성능적으로 별 차이는 없다. 가독성을 따진다면 slice()쪽을 개인적으로 추천한다.