백준 알고리즘/Lang-node.js

[백준/node.js] 2523번 별찍기 - 13

Jongung 2022. 1. 8. 22:36

https://www.acmicpc.net/problem/2523

 

2523번: 별 찍기 - 13

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

www.acmicpc.net

  • 사용언어 : node.js
  • 알고리즘 : 구현
  • Solved.ac Tier : Bronze III

 

 

node.js 코드

1. 문제 정리

예제를 보고 규칙을 유추한 뒤 별을 찍어보면 되는 간단한 문제이다.
c언어로 하면 쉬울 수 있겠지만 js를 사용하기로 맘 먹은 나는 최대한 js 언어로 문제를 풀어보는 것을 목표로 시작하게 되었다.

이 문제를 나는 2개로 나눠서 접근 했다. 만약 3이 입력 되었을 때 별은 5줄이다.
그래서 for문을 위에 3줄 밑에 2줄 이렇게 나눠서 작성 해 보았다.

//3이 입력되었을때 
for(let i = 1; i <= inputs; i++){
    for(let j = 1; j<= i; j++){
        process.stdout.write('*');
    }
    console.log();
}
//*
//**
//***


for(let i = inputs - 1; i >=1; i--){
    for(let j = 1; j<= i; j++){
        process.stdout.write('*');
    }
    console.log();
}
//**
//*

 

이런 식으로 작성 해보았다. 

process.stdout.write() 함수는 console.log의 자동 줄 바꿈을 방지하기 위해 사용 하였고 console.log를 사용하여 줄 바꿈을 해주었다.

 

2. 완성 코드

 

let inputs = require('fs').readFileSync('/dev/stdin').toString().trim();// /dev/stdin
for(let i = 1; i <= inputs; i++){
    for(let j = 1; j<= i; j++){
        process.stdout.write('*');
    }
    console.log();
}

for(let i = inputs - 1; i >=1; i--){
    for(let j = 1; j<= i; j++){
        process.stdout.write('*');
    }
    console.log();
}