반복문 10단계
2439번. 별 찍기-2
첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제
하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.
첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.
5
아래 그림을 오른쪽 정렬된 형태로 만들기.
*
**
***
****
*****
const fs = require('fs');
const inputData = fs.readFileSync('/dev/stdin').toString();
const num = Number(inputData);
let result = '';
// repeat()로 문자열을 반복시켜서 할당한 뒤 매 반복마다 출력
for(let i = 1; i <= num; i++){
result = ' '.repeat(num - i) + '*'.repeat(i);
console.log(result);
}
const fs = require('fs');
const inputData = fs.readFileSync('/dev/stdin').toString();
const num = Number(inputData);
// ' '으로 채운 num개의 원소를 가지는 배열을 생성
let result = new Array(num).fill(' '); // [' ', ' ', ' ', ' ', ' ']
for(let i = num - 1; i >= 0; i--){
// 배열 끝에서부터 * 할당
result[i] = '*';
// join()으로 띄어쓰기없이 배열 내 원소들을 출력
console.log(result.join(''));
}
const fs = require('fs');
const inputData = fs.readFileSync('/dev/stdin').toString();
const num = Number(inputData);
for (let i = 0; i < num; i++) {
let result = '';
for (let j = num - 1; j >= 0; j--) {
// 삼항연산자 활용
// j가 i보다 작거나 같다면 *를 할당, 아니면 공백을 할당
result += j <= i ? '*' : ' ';
}
console.log(result);
}
이 문제도 풀이가 굉장히 다양하다.
주석을 잘 읽어보자.
3번 해답은 찾아보고서 충격받았다...저런 생각을 할 수도 있구나..
참고 사이트