첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제
하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.
첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.
5
*
**
***
****
*****
let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split(' ');
let num = Number(input);
result = '';
for (let i = 0; i < num; i++) {
for (let j = 0; j < num - i - 1; j++) {
// for (let j = num - 1; j > i; j--) {
result += ' ';
}
for (let k = 0; k <=i; k++) {
result += '*';
}
result += '\n';
}
console.log(result);
2438번 문제와 유사한 문제지만, 처음 풀었을 때 공백 때문에 고민을 많이했던 기억이 있다. 공백 또한 별처럼 반복문을 이용해 찍어주면 된다.
앞서 2438번 문제에서 이야기하지는 않았지만 별 문제의 경우,
변수 i를 사용한 for 문은 줄 수를 찍어준다고 생각하고,
나머지 for문으로는 각 줄마다 값을 찍어준다고 생각하면 수월하게 해결할 수 있다.공식을 만든다면 다음과 같다.
[ 전체 줄의 수 ] = [ 변수 i 를 사용한 for 문의 반복 수 ]
[ 각 줄마다 찍힐 값의 수 ] = [ 변수 j 를 사용한 for 문의 반복 수 ] + [ 변수 k 를 사용한 for 문의 반복 수 ]