CS/BOJ

[BOJ, Python] 13015번 : 별 찍기 - 23

아이스얼그레이 2022. 4. 20. 23:09

https://www.acmicpc.net/problem/13015

 

13015번: 별 찍기 - 23

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

www.acmicpc.net

문제

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

입력

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

출력

규칙대로 별을 출력한다.

예제 입력 1

2

예제 출력 1

** **
 ***
** **

예제 입력 2

5

예제 출력 2

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

 

귀도 반 로섬에게 감사하며 풀었던 문제입니다. C나 java로 풀었다면 무수한 반복문을 써야할 것 같습니다..!!

어디서 홀수 개, 짝수 개가 나오는지만 체크하면 해결할 수 있습니다.

 

N = int(input())

print("*" * N + " " * (2 * N - 3) + "*" * N)

for i in range((2 * N - 3) // 2):
    print(" " * (i + 1) + "*" + " " * (N - 2) + "*" + " " * (2 * (N - i) - 5) + "*" + " " * (N - 2) + "*")

print(" " * (N - 1) + "*" + " " * (N - 2) + "*" + " " * (N - 2) + "*")

for i in range((2 * N - 3) // 2 - 1, -1, -1):
    print(" " * (i + 1) + "*" + " " * (N - 2) + "*" + " " * (2 * (N - i) - 5) + "*" + " " * (N - 2) + "*")

print("*" * N + " " * (2 * N - 3) + "*" * N)