문제

첫째 줄에는  N, 둘째 줄에는  N-1, ..., N번째 줄에는  1개를 찍는 문제

하지만, 오른쪽을 기준으로 정렬한 (예제 참고) 출력하시오.

 

 

입력

첫째 줄에 N(1 ≤ N ≤ 100) 주어진다.

 

 

출력

첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.

 

 

풀이

별을 input의 갯수만큼 시작해서 하나씩 줄여나가며

해당 위치에는 공백을 추가해야 하는 문제로 

각각의 갯수는 .repeat() 메서드를 사용해 처리했으며

공통적으로 공백과 별의 갯수의 합이 input만큼이기 때문에

input으로 시작한 i의 갯수만큼의 별과 input - i만큼의 공백을 주어진 조건에 맞게 출력했다.

 

제한 조건이 N < 100이기 때문에 딱히 result 배열에 담아서 한번에 출력할 필요는 없지만

일관된 코드 작성이 가독성 면에서 유리하기 때문에 result에 담아서 출력했다.

const input = Number(require('fs').readFileSync('/dev/stdin').toString().trim())
const result = []
for(let i = input ; i > 0 ; i--){
    result.push(`${' '.repeat(input-i)}${'*'.repeat(i)}`)
}
console.log(result.join('\n'))
const input = Number('5')
const result = []
for(let i = input ; i > 0 ; i--){
    result.push(`${' '.repeat(input-i)}${'*'.repeat(i)}`)
}
console.log(result.join('\n'))

'알고리즘 > 백준' 카테고리의 다른 글

[백준 JS] 2443번 별 찍기 - 6  (0) 2023.03.13
[백준 JS] 2442번 별 찍기 - 5  (0) 2023.03.13
[백준 JS] 2010번 플러그  (0) 2023.03.13
[백준 JS] 1837번 암호제작  (0) 2023.03.13
[백준 JS] 1703번 생장점  (0) 2023.03.13

+ Recent posts