문제
예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.
입력
첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
출력
첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.
풀이
별 찍기 - 9는 8을 90도 회전한 느낌으로 모래시계 형태의 별을 찍어야 했다.
별의 갯수가 input*2 -1개로 시작해서 1개까지 점차 줄어든 다음
다시 시작한 갯수만큼 늘어나야 했기 때문에 공백은 앞에 하나씩 추가하며 별의 갯수는 2개씩 줄여 1개로 만들고
그 뒤로는 다시 역순으로 진행했으며 중간의 별 한칸이 중요했기 때문에 시작점을 input이 아닌 input -1로 지정했다.
이 문제 또한 다른 별 찍기 문제들처럼 템플릿 리터럴(`${}`)과 repeat을 사용해 해결할 수 있는 문제였다.
const input = Number(require('fs').readFileSync('/dev/stdin').toString().trim())
const result = []
for(let i = 1 ; i <= input ; i++){
result.push(`${' '.repeat(i-1)}${'*'.repeat(input*2+1-i*2)}`)
}
for(let i = input-1 ; i >= 1 ; i--){
result.push(`${' '.repeat(i-1)}${'*'.repeat(input*2+1-i*2)}`)
}
console.log(result.join('\n'))
const input = 10
const result = []
for(let i = 1 ; i <= input ; i++){
result.push(`${' '.repeat(i-1)}${'*'.repeat(input*2+1-i*2)}`)
}
for(let i = input-1 ; i >= 1 ; i--){
result.push(`${' '.repeat(i-1)}${'*'.repeat(input*2+1-i*2)}`)
}
console.log(result.join('\n'))
'알고리즘 > 백준' 카테고리의 다른 글
[백준 JS] 2445번 별 찍기 - 8 (0) | 2023.04.01 |
---|---|
[백준 JS] 2444번 별 찍기 - 7 (0) | 2023.04.01 |
[백준 JS] 2443번 별 찍기 - 6 (0) | 2023.03.13 |
[백준 JS] 2442번 별 찍기 - 5 (0) | 2023.03.13 |
[백준 JS] 2441번 별 찍기 - 4 (0) | 2023.03.13 |