문제

예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.

 

 

입력

첫째 줄에 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  (1) 2023.04.01
[백준 JS] 2443번 별 찍기 - 6  (0) 2023.03.13
[백준 JS] 2442번 별 찍기 - 5  (0) 2023.03.13
[백준 JS] 2441번 별 찍기 - 4  (0) 2023.03.13

+ Recent posts