백준 2444번을 풀어보았다.
let N = Number(require('fs').readFileSync('/dev/stdin').toString())
let output = ''
for (let i = 0; i < N; i++) {
for (let j = N - 1; j > i; j--) {
output += ' '
}
for (let k = 0; k < 2 * i + 1; k++) {
output += '*'
}
output += '\n'
}
for (let i = 0; i < N - 1; i++) {
for (let j = 0; j <= i; j++) {
output += ' '
}
for (let k = 0; k < 2 * (N - (i + 2)) + 1; k++) {
output += '*'
}
i !== N - 2 ? output += '\n' : output += ''
}
console.log(output)
위와 같이 규칙을 파악하고 반복문을 사용하여 풀이하였으나
repeat 메소드를 사용하면 더 간단하게 해결할 수 있다.
let N = Number(require('fs').readFileSync('/dev/stdin').toString())
let output = ''
for (let i = 0; i < N; i++) {
output += ' '.repeat(N - 1 - i)
output += '*'.repeat(2 * i + 1)
output += '\n'
}
for (let i = 0; i < N - 1; i++) {
output += ' '.repeat(i + 1)
output += '*'.repeat(2 * (N - (i + 2)) + 1)
i !== N - 2 ? output += '\n' : output += ''
}
console.log(output)
💫 이 문제를 통해 배운 것
문자열을 반복할 때 repeat 메소드도 떠올리자.