백준 2448: 별찍기 - 11(Python/ 파이썬)

Hyn·2025년 5월 11일

Algorithm(Py)

목록 보기
27/37
n = int(input())

board = [[' '] * (n*2 - 1) for _ in range(n)]

def triangle(num, x, y): # 밑변, 위 꼭짓점 x,y좌표
    # 가장 작다면
    if num == 3:
        # 그린다
        board[y][x-1] = '*'
        board[y+1][x-2], board[y+1][x] = '*', '*'
        board[y+2][x-3:x+2] = ['*']*5
    else:
        # 좌측 삼각형 그리기
        triangle(num//2, x - num//2, y + num//2)
        # 우측 삼각형 그리기
        triangle(num//2, x + num//2, y + num//2)
        # 위 삼각형 그리기
        triangle(num//2, x, y)

def draw(num):
    triangle(num, num, 0)
    for line in board:
        print(''.join(line))

draw(n)
profile
쪼렙 개발자 하지만 포기하지 않지

0개의 댓글