[JS] 백준 2439번 별찍기-2

jsg_ko·2021년 11월 12일
0

코테연습

목록 보기
8/21

빈 공백을 어떻게 채울까 로직 생각하는데 좀 해멨다..
공백 또한 별처럼 반복문을 이용해 찍어주면 된다.
제일 바깥 반복문은 전체 줄의 수, 그리고 내부반복문은 '공백 추가 반복문' + '* 추가 반복문' 으로 구현했다. 바깥 인덱스가 0일때 1일때 2일때로 구분해서 노가다로 짠 것 같다.
1년뒤 다시 이 문제를 풀때 한줄로 구현할 수 있는사람이되자.

const fs = require("fs"); //파일받기위해 필요
const localFile = fs.existsSync("./input.txt"); // 내가 알고리즘 풀려는 폴더에 './input.txt'의 유무를 참,거짓으로 변수에 넣어라
const filePath = () => {
  // 참이면 내 input파일을 열고 그외는 백준의 알고리즘에서 주는 입력값을 받겠다.
  if (localFile) {
    return "./input.txt";
  }
  return "/dev/stdin";
};


let input = fs.readFileSync(filePath()).toString().split(' ');

let num = Number(input);

let string = '';
// '    *' 스페이스 4번 문자열 + '*'    i 0 j 4 k 1
// '   **' 스페이스 3번 문자열 + '**'   i 1 j 3 k 2 
// '  ***' 스페이스 2번 문자열 + '***'  i 2 j 2 k 3 
// ' ****' 스페이스 1번 문자열 + '****' i 3 j 1 k 4 
// '*****'   + '*****'             i 4 j 0 k 5
for(let i = 0; i <  num; i ++){
  for(let j = num-1-i; j > 0; j--){
    string = string + ' '
  }

  for(let k = 1; k <= i+1; k++ ){
    string = string + '*'
  }
  string = string + '\n';
}
console.log(string);
profile
디버깅에서 재미를 추구하면 안되는 걸까

0개의 댓글