sm 기술 블로그

69. 2447 (별 찍기 -10) 본문

문제/백준_자바스크립트

69. 2447 (별 찍기 -10)

sm_hope 2022. 6. 8. 09:29
let input = require("fs").readFileSync("ex.txt").toString().split(" ");

let n = parseInt(input[0]);

const draw_star = (n) => {
  if (n === 1) {
    let star = [];
    star.push("*");
    return star;
  }

  let stars = draw_star(parseInt(n / 3));
  let result = [];
  let line = "";
  let draw = "";

  for (let first of stars) {
    for (let i = 0; i < 3; i++) {
      draw += first;
    }
    result.push(draw);
    draw = "";
  }

  draw = "";
  for (let second of stars) {
    for (let i = 0; i < parseInt(n / 3); i++) {
      line += " ";
    }
    draw += second + line + second;
    result.push(draw);
    draw = "";
    line = "";
  }

  draw = "";
  for (let third of stars) {
    for (let i = 0; i < 3; i++) {
      draw += third;
    }
    result.push(draw);
    draw = "";
  }
  return result;
};

console.log(draw_star(n).join("\n"));

중간에 draw = "", line = "" 은 그려준걸 지우기 위해 사용한것이다.

 

로직에 대한 자세한 설명

https://smhope.tistory.com/191?category=1058420 

 

73. 2447 (별 찍기 - 10)

좀 어려웠다.. 처음에 n = int(input()) result = "" # 1. 함수정의 def star(x, y, n): global result if(x // n) % 3 == 1 and (y // n) % 3 == 1: # x, y를 현재 n값에 나누고 그 값의 3의 나머지가 1일 때 res..

smhope.tistory.com

 

'문제 > 백준_자바스크립트' 카테고리의 다른 글

71. 2798(블랙잭)  (0) 2022.06.09
70. 11729(하노이탑 이동 순서)  (0) 2022.06.08
68. 17478 (재귀함수가 뭔가요?)  (0) 2022.06.06
67. 10870(피보나치수열)  (0) 2022.06.06
66. 10872 (팩토리얼)  (0) 2022.06.06
Comments