Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 자격증
- K-Digital Credit
- 구름edu
- 제로베이스
- 톺아보기
- 공부를 가장한 일기일지도
- 알고리즘
- 최원영 저자
- CodeStates
- Do it! 시리즈
- 이해할 수 있는
- 엘리스코딩
- 개발자북클럽
- 노마드코더
- 티스토리챌린지
- javascript
- 모던 자바스크립트 deep dive
- 백준
- 프로그래머스
- 오블완
- js
- boj
- nomadcoders
- 자바스크립트
- 노개북
- SQL 개발자
- IT 지식
- 노마드 코더
- SQLD
- 비전공자를 위한
Archives
- Today
- Total
개발자를 희망하는 초보의 자기개발 이야기
백준 2444번 별 찍기 - 7 문제 - Node.js 본문
반응형

문제 원문 링크
문제
예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.
입력
첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
출력
첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.
예제 입력 1
5
예제 출력 1
*
***
*****
*******
*********
*******
*****
***
*
풀이1
const fs = require("fs");
const N = Number(fs.readFileSync("dev/stdin").toString().trim());
for (let i = 1; i <= 2 * N - 1; i++) {
let spaceCount, starCount;
if (i <= N) {
// 윗부분
spaceCount = N - i;
starCount = 2 * i - 1;
} else {
// 아랫부분
spaceCount = i - N;
starCount = 2 * (2 * N - i) - 1;
}
let line = " ".repeat(spaceCount) + "*".repeat(starCount);
console.log(line);
}
최대한 헷갈리지 않게 지문대로 입력값을 숫자형으로 N 변수에 담았다.
반복할 범위는 지문에서 ' 첫째 줄부터 2×N-1번째 줄까지' 라고 알려주고 있다.
1~5번째까지는 공백이 줄고 별이 늘어나지만, 6~9번째는 공백이 늘어나고, 별이 줄어드는 것을 표현해야 했는데,
반복문이 진행되는 중에 "*"과 " "를 반복하는 이중 반복문을 만들면서 이를 해결하려고 하니 너무 복잡하게 진행되고 있었다.
항상 코드가 복잡해지고 하드코딩되면 어딘가 잘못되고 있는거였기 때문에
반복문 말고 반복할 수 있는 다른 방법이 없을까 하던 중 repeat 메서드를 발견하게 되면서
공백과 별의 수량 변화를 if문으로 분기처리하고 repeat 메서드를 사용해 수량의 결과를 반복시켜 겨우 해결하게 되었다.
반응형
'자료구조&알고리즘 > BOJ(백준 온라인 저지)' 카테고리의 다른 글
백준 2941번 크로아티아 알파벳 문제 - Node.js (0) | 2024.11.11 |
---|---|
백준 1157번 단어공부 문제 - Node.js (0) | 2024.11.10 |
백준 25083번 새싹 문제 - Node.js (0) | 2024.11.08 |
백준 1152번 단어의 개수 문제 - Node.js (0) | 2024.11.07 |
백준 10813번 공 바꾸기 문제 - Node.js (0) | 2024.10.22 |