[백준] 10994 별 찍기 - 19

Python
avatar
2025.06.06
·
2 min read

문제

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


입력

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


출력

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


내 풀이

def draw(n, arr, x, y):
    size = 4*n - 3
    # 위, 아래
    for i in range(size):
        arr[x][y+i] = '*'
        arr[x+size-1][y+i] = '*'
    # 왼쪽, 오른쪽
    for i in range(1, size-1):
        arr[x+i][y] = '*'
        arr[x+i][y+size-1] = '*'
    # 재귀
    if n > 1:
        draw(n-1, arr, x+2, y+2)

n = int(input())
size = 4*n - 3
arr = [[' ']*size for _ in range(size)]
draw(n, arr, 0, 0)
for line in arr:
    print(''.join(line))

코멘트

재귀를 이용하는 문제이다. n일 때는 (4n-3) x (4n-3) 크기의 사각형을 그린다. 그리고 4(n-1)-3 크기의 사각형을 안에 재귀적으로 그리면 된다.


References

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







- 컬렉션 아티클