문제풀이/구현
[Python/파이썬] 백준 10994번 별 찍기 - 19
딜레이레이
2023. 4. 19. 23:40
10994번: 별 찍기 - 19
예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.
www.acmicpc.net
문제
예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.
입력
첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
출력
첫째 줄부터 차례대로 별을 출력한다.
코드
# i번째 사각형 한 변 길이 : 4(i-1)+1
n = int(input())
length = 4*(n-1)+1
stars = [[' '] * length for _ in range(length)]
def draw(num):
if num == 1:
stars[length//2][length//2] = "*"
return
# 한 변의 길이
l = 4 * (num-1) + 1
gap = (n-num)*2
# 맨윗줄, 맨아랫줄
for i in range(l):
stars[length//2-l//2][gap+i] = '*'
stars[length//2+l//2][gap+i] = '*'
# 양옆
for i in range(l):
stars[gap+i][gap] = "*"
stars[gap+i][length-gap-1] = "*"
return draw(num-1)
draw(n)
for i in range(length):
for j in range(length):
print(stars[i][j], end='')
print()