728x90

BOJ 10994 별 찍기 - 19

문제

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

시간 제한 : 1 초
메모리 제한 : 256 MB

입력

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

출력

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

예제 입력 1

1

예제 출력 1

*

예제 입력 2

2

예제 출력 2

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

예제 입력 3

3

예제 출력 3

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

예제 입력 4

4

예제 출력 4

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

풀이

n = int(input())
star = [[' ' for _ in range(4 * n - 3)] for _ in range(4 * n - 3)]

def draw_star(n, x, y):
    if n == 1:
        star[y][x] = '*'
        return
    
    length = 4 * n -3

    for i in range(length):
        star[y][x+i] = '*'
        star[y+i][x] = '*'
        star[y+length-1][x+i] = '*'
        star[y+i][x+length-1] = '*'
    
    draw_star(n-1, x+2, y+2)

draw_star(n, 0, 0)

for j in star:
    print(''.join(j))
728x90

+ Recent posts