백준 2438번 JavaScript 문제풀이

Cho Dragoo·2021년 5월 10일
0
post-thumbnail

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()를 쓰는게 정답에 가깝다고 생각한다. 그냥 메서드 단어만 해석해 봐도 가독성이 명백히 좋아 보이기 때문이다.

profile
어떤 문제든 파악 할 수 있으며 해결책을 찾을 수 있는 개발능력을 꿈꾸고 있습니다.

0개의 댓글