JavaScript 백준 온라인 알고리즘 공부
백준 2438번 JavaScript 문제
별 찍기 - 1
https://www.acmicpc.net/problem/2438
const fs = require("fs");
const [n, ...arr] = (process.platform === "linux"
? fs.readFileSync("/dev/stdin").toString()
: `5`
)
.trim()
.split("\n");
let answer = "";
//join()을 쓸 경우
for (let i = 1; i <= n; i++) {
let stars = Array(i + 1).join("*");
answer += `${stars}` + "\n";
}
////////////////////
//repeat()을 쓸 경우
for (let i = 1; i <= n; i++) {
let stars = "*".repeat(i);
answer += `${stars}` + "\n";
}
///////////////////
console.log(answer);
BOJ의 입력을 담당하는 상수는 const [n, ...arr]
를 고치지 않고 그대로 써도 괜찮았다.
입력값 하나이면 n만 쓰고 여러줄이면 n은 입력줄의 갯수로 대입하며 arr을 배열로 활용하는 편리한 범용성이 있다.
자바스크립트에서는 'join()
', 'repeat()
' 이 메서드로 무난히 쓸 수 있는데 차이가 있다면 join()
은 Array의 내부 요소 사이사이에 끼어넣는 것이고 repeat()
는 지정한 문자열을 반복하는 것이다.
굳이 고르자면 repeat()
를 쓰는게 정답에 가깝다고 생각한다. 그냥 메서드 단어만 해석해 봐도 가독성이 명백히 좋아 보이기 때문이다.