• Feed
  • Explore
  • Ranking
/
/
    코딩 테스트 풀이

    [백준] 10994 별 찍기 - 19

    Python
    J
    J. Hwang
    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







    - 컬렉션 아티클