백준 2439번 JavaScript 문제풀이

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

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()쪽을 개인적으로 추천한다.
profile
어떤 문제든 파악 할 수 있으며 해결책을 찾을 수 있는 개발능력을 꿈꾸고 있습니다.

0개의 댓글