BOJ2447 - 별찍기7

CYSSSSSSSSS·2023년 6월 22일

알고리즘

목록 보기
55/83

문제2447

문제

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

예제

# input = 5
    *
   ***
  *****
 *******
*********
 *******
  *****
   ***
    *

해결

  • 층별 별의 개수는 2n12n-1 개이다.
  • 빈칸의 개수는 9(2n1)9-(2n-1) 개이다.
  • 한줄에서 별을 기준으로 9(2n1)/29-(2n-1) / 2개 의 공백이 들어간다.
  • 사실 뒤에 공백은 필요 없기 떄문에 앞부분 의 공백만 생각하면 된다.
n = int(input())

n2 = 2 * n - 1

for i in range(1, n + 1):
    n_ = 2 * i - 1
    print(' ' * ((n2 - n_) // 2) + '*' * (2 * i - 1))

for i in range(n - 1, 0, -1):
    n_ = 2 * i - 1
    print(' ' * ((n2 - n_) // 2) + '*' * (2 * i - 1))

profile
개발자 되고 싶어요

0개의 댓글