| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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
- 14655 nodejs
- Javascript
- 개발자
- 백준1789
- 개인프로젝트
- 1789 node.js
- 1541 node.js
- 자바스크립트 딥다이브
- 11047 node.js
- flex box
- CSS flex
- 21313 nodejs
- 모던자바스크립트 딥다이브
- 노마드북클럽
- 자바스크립트 일급객체
- 모던자바스크립트DeepDive
- 노마드스터디
- 1931 node.js
- 모던자바스크립트
- 자바스크립트 함수
- 노개북
- 백준21313
- const
- 백준25176
- 백준1026
- IT5분잡학사전
- 11399 node.js
- 코딩
- 2217 node.js
- 1026 node.js
Archives
- Today
- Total
캐또's coding
2439 - 별 찍기 - 2 - node.js 본문
문제
첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제
하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.
입력
첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
출력
첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.
예제 입력 1 복사
5
예제 출력 1 복사
*
**
***
****
*****
알고리즘 분류
이전 문제였던 별 찍기 문제의 반대 버전, 이전에는 단순히 별을 찍었었다면, 이번에는 오른쪽으로 정렬이 되어야 한다는 차이가 있다.
const input = Number(require("fs").readFileSync("/dev/stdin").toString());
for (let i = 1; i <= input; i++) {
console.log(`${" ".repeat(input - i)}${"*".repeat(i)}`);
}
python을 썼을 때는 문제를 엄청 쉽게 처리했던 기억이 있다. 그냥 공백 * input - i 이런 느낌으로 처리하고 반복문 돌때마다 i가 ++ 되기 때문에 알아서 공백이 작아지고, 별은 * i를 하면 하나씩 늘어나므로 알아서 되는 느낌이었다.
반면 node.js/javascript는 문자에 대해 곱하기가 안 먹는다. 결국 for문을 중첩해서 작성하는 등의 방법을 활용해야하는데, 다행이도 똑같은 생각을 한 사람들이 많아서인지, repeat()함수라는 것이 있었다. 곱하기와 같은 것인데, 반복하려는 것 뒤에 붙여서 어떤 규칙으로 반복시킬지 적용할 수 있다.
for문에서 i를 1부터 돌리게 되면 (만약 input이 5라면) input-i는 4부터 시작, i는 1부터 시작하므로 공백 4칸 별 1칸, 그 다음에는 공백 3칸 별 2칸 이렇게 진행되어 문제를 해결하게 된다.
'기초 공부 > 백준 문제 풀이' 카테고리의 다른 글
| 10952 - A + B - 5 - node.js (0) | 2022.08.16 |
|---|---|
| 10871 - X보다 작은 수 - node.js (0) | 2022.08.16 |
| 2438 - 별 찍기 -1 - node.js (0) | 2022.08.15 |
| 11022 - A+B - 8 - node.js (30번째) (0) | 2022.08.15 |
| 11021 - A+B - 7 - node.js (0) | 2022.08.15 |
Comments