[JS] 백준 2439. 별 찍기 - 2

n-u·2022년 6월 22일
0

Algorithm

목록 보기
15/33
post-thumbnail

백준 2439. 별 찍기 - 2

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

⭕ 제출한 풀이

const fs = require('fs');
const file = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
let input = fs.readFileSync(file).toString();
let result = '';

for (let i = 0; i < input; i++) {
    for (let j = i; j < input - 1; j++) {
        result += ' ';
    }
    for (let k = 0; k <= i; k++) {
        result += '*';
    }

    result += '\n';
}

console.log(result);
  • 첫번째 for문은 수직으로 별을 5줄을 찍을 수 있도록 5번을 돌림
  • 두번째 레벨의 for문은 2개
    1. 공백을 찍는 반복문

      for (let j = i; j < input - 1; j++)

      • 공백이 반복문을 돌릴 수록 개수가 줄어들어야 한다.
      • i는 첫번째 반복문을 돌릴 수록 증가하고, input을 고정값으로 두면 그 사이의 반복문을 돌리는 횟수는 점차 줄어들게 된다.
      • input - 1은 제출하는 값의 양식이 앞에 공백이 없어 공백을 줄이기 위해 추가하였다.
    2. 별을 찍는 반복문

      for (let k = 0; k <= i; k++)

      • 별의 개수는 반복문을 돌릴 수록 증가해야 한다.
      • 첫번째 반복문의 i값을 이용해 별의 개수를 i가 증가하면 그만큼의 별을 찍는 개수도 증가한다.

풀면서 알게 된 것

  • 같은 반복문 레벌은 수평으로 정렬된다.
  • 문제를 푸는데 생각보다 오래 걸렸고, 반복문의 조건식 안의 i,j,k를 잘 이용하면 반복문의 조건을 고정되지 않은 값으로 사용할 수 있다.

❗참고하면 좋은 풀이법

https://dev-minju.tistory.com/33

profile
기록하며 발전하는 삶

0개의 댓글