[백준/Node.js] 2439번: 별 찍기(2)

Jay Kim·2020년 3월 31일
0

제한 사항


문제

첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제

하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.


입력

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


출력

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


예제 입력 1

5

예제 출력 1

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

소스 코드

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);

Comment

2438번 문제와 유사한 문제지만, 처음 풀었을 때 공백 때문에 고민을 많이했던 기억이 있다. 공백 또한 별처럼 반복문을 이용해 찍어주면 된다.
앞서 2438번 문제에서 이야기하지는 않았지만 별 문제의 경우,
변수 i를 사용한 for 문은 줄 수를 찍어준다고 생각하고,
나머지 for문으로는 각 줄마다 값을 찍어준다고 생각하면 수월하게 해결할 수 있다.공식을 만든다면 다음과 같다.
[ 전체 줄의 수 ] = [ 변수 i 를 사용한 for 문의 반복 수 ]
[ 각 줄마다 찍힐 값의 수 ] = [ 변수 j 를 사용한 for 문의 반복 수 ] + [ 변수 k 를 사용한 for 문의 반복 수 ]


Reference

profile
minuzai

0개의 댓글