Algorithm_javascript/6. 심화 1

백준 2444번 별찍기 (javascript, node.js)

luminouswy 2023. 5. 23. 19:15
반응형

백준 2444번 별찍기 (javascript, node.js)

문제

  • 예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.

입력

  • 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.

출력

  • 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.

예제입력 1

5

예제출력 1

    *
   ***
  *****
 *******
*********
 *******
  *****
   ***
    *

문제풀이

  • 별의 갯수를 늘렸다가 다시 줄이는 방법에서 막힘
  • 결국 다른 사람의 코드를 참고하여 위에 다섯줄
  • 아래 4줄을 만들어서 해결
//2444번
//별찍기
// 첫 번째 줄부터 2xN-1 전째 줄까지 아래와 같이 별출력 
//     *
//    ***
//   *****
//  *******
// *********
//  *******
//   *****
//    ***
//     *


// 실행 과정 
// 먼저 한번에 그림을 그릴려고해서 잘안됨
// 1. 먼저 위에 5개를 출력하고 
// 2. 아래 4개는 따로 만들어서 출력
// 3. 공백 칸이 줄어들고, 늘어나게 해야됨 


const fs = require('fs');
const file = process.platform === 'linux' ? 'dev/stdin' : './text.txt';
const input = fs.readFileSync(file).toString().trim().split(' ');

const n = parseInt(input);

let str = [];

// 위에 다섯개
for(i= 1; i <= n ; i++){
  for(j = 1; j < n+i; j++ ){
    if(j <= n-i){
      str += ' ';
    }else{
      str += '*';
    }    
  }
  str += '\n';
}
// 아래 4개
for(i= n; i > 1; i--){  
  for(j = 1; j < n+i-1; j++ ){
    if(j <= n+1-i  ){
      str += ' ';
    }else{
      str += '*';
    }
  }
  str += '\n';  
}
console.log(str);