[백준/Node.js] 10996번: 별 찍기(21)

Jay Kim·2020년 4월 4일
0
post-custom-banner

제한 사항


문제

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


입력

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


출력

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


예제 입력 1

1

예제 출력 1

*

예제 입력 2

2

예제 출력 2

*
 *
*
 *

예제 입력 3

3

예제 출력 3

* *
 *
* *
 *
* *
 *

예제 입력 4

4

예제 출력 4

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

소스 코드

let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split(' ');

let number = Number(input);
let result = '';

for (let i = 0; i < number * 2; i++) {
  if (i !== 0) {
    result += '\n';
  }
  if (i % 2 === 0) {
    for (let j = 0; j < number; j++) {
      if (j % 2 === 0) {
        result += '*';
      } else {
        result += ' ';
      }
    }
  } else {
    for (let j = 0; j < number; j++) {
      if (j % 2 === 0) {
        result += ' ';
      } else {
        result += '*';
      }
    }
  }
}

console.log(result);

Comment

이 문제는 문제 해석이 가장 어려운 부분이 아닐까 싶다.
나는 문제 해결을 위해 다음과 같이 대략적인 의사 코드를 작성해보았다.

  • 한 줄의 길이(공백 포함) = 입력 받은 값
  • 줄 수 = (입력 받은 값 X 2)
  • 행마다 다른 모양 설정(인덱스 기준)
    • 홀수 행 : 공백으로 시작
    • 짝수 행 : '*'로 시작

Reference

profile
minuzai
post-custom-banner

0개의 댓글