백준 알고리즘/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();
}