첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제
첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.
const fs = require("fs");
const input = fs.readFileSync("./dev/stdin").toString();
let baekInput = Number(input);
let stars = ""; // 출력할 별들을 담을 변수 선언
for (let i = 0; i < baekInput; i++) {
for (let j = 0; j <= i; j++) {
stars += "*"; // 반복해서 별 추가해주기
}
stars += "\n"; // 별 추가 후에 줄바꿈 넣어주기
}
console.log(stars);
고전적인 문제 중에 하나 별찍기⭐️ 문제이다. 처음에는 console.log(stars)
를 반복문에 넣어서 작성했고 예상한 결과와는 다르게 한개짜리 *
이 여러번 찍히게 됐다. 이유는 console.log()
의 경우에 같은 줄로 출력이 되지 않기 때문이었다.
해결책으로 stars
라는 변수를 만들어서 *
과 \n
을 반복해서 넣을 수 있도록 조정했다. 한 번의 console.log(stars)
호출을 통해서 원하는 결과값을 얻을 수 있었다.
사실, console.log()
의 성격을 이용해서 아래처럼 작성할 수 있다.
let stars2 = "";
for (let i = 0; i < baekInput; i++) {
stars2 += "*"; // 반복해서 * 추가
console.log(stars2); // 반복해서 출력, 자동으로 줄바꿈
}
console.log()
을 여러 번 반복출력하는데 이 때 stars2
에는 *
이 하나씩 늘어나므로 위와 같은 결과를 출력한다. 시간 상으로 어떤 것인 유리한지 궁금해서 돌려봤는데 단일 for문
을 사용한 아래 경우가 조금 더 빠른 속도를 보였다.