백준 - 별찍기-8

BooKi·2022년 5월 16일
0

백준

목록 보기
26/64
post-thumbnail

백준 - 별찍기-8

문제

문제

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

입력

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

출력

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

예제 입력 1

5

예제 출력 1

*        *
**      **
***    ***
****  ****
**********
****  ****
***    ***
**      **
*        *

제출

뭔가 갑자기 확 어려워진 기분이다

생각을 해봤다

첫번째 별, 중간 공백, 두번째 별을 각각 다 따로 처리하기로했다

그리고 n번 넘게 반복을 하면 실행되는 반복문을 또 따로 만들자 라고 생각을 했다

const fs = require('fs')
const input = fs.readFileSync('/dev/stdin').toString()
const n = Number(input)
let ans = ""
for(let i = 1; i<n*2; i++){
  for(let k = 1; k<=i && i<=n; k++){
    ans+="*"
  }
  for(let j = (n*2)-(i*2); j>0; j--){
    ans+=" "
  }
  for(let k = 1; k<=i && i<=n; k++){
    ans+="*"
  }
  
  for(let k = n-(i-n); i>n && k>0; k--){
    ans+="*"
  }
  for(let j = (i-n)*2; j>0; j--){
    ans+=" "
  }
  for(let k = n-(i-n); i>n && k>0; k--){
    ans+="*"
  }
  ans+="\n"
}
console.log(ans)

초반에 위에있는 3개의 반복문이 1~n까지 반복문을 찍는것이고

그 다음은 그 뒤를 찍는 것이다

말로하는거 보다 코드를 보고 조금씩 바꾸면서 따라하면 바로 이해가 갈 것이다

profile
성장을 보여주는 기록

0개의 댓글