728x90
반응형
https://www.acmicpc.net/problem/2448
2448번: 별 찍기 - 11
첫째 줄에 N이 주어진다. N은 항상 3×2k 수이다. (3, 6, 12, 24, 48, ...) (0 ≤ k ≤ 10, k는 정수)
www.acmicpc.net
풀이
1. 우선 필요한 범위만큼 2차원 배열을 빈칸으로 채운다.(n이 24일때 높이는 24이지만 길이는 n*2이다)
2. star함수에 n이 3일 때, 더이상 분할할 수 없기 때문에 문제에서 주어진 삼각형을 그린다.
3. n이 3이상일 경우 가장위 별의 좌표로 부터 분할 될 삼각형의 위쪽 꼭지점 좌표로 재귀한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
n=int(input())
arr=[[' ']*(n*2) for i in range(n)]
def star(n,x,y):
if n==3:
arr[x][y]='*'
arr[x+1][y-1]=arr[x+1][y+1]='*'
for i in range(-2,3):
arr[x+2][y+i]='*'
return
else:
a=n//2
star(a,x,y)
star(a,x+a,y+a)
star(a,x+a,y-a)
star(n,0,n-1)
for i in arr:
print(''.join(i))
|
cs |
728x90
반응형
'Python3 > 백준 알고리즘' 카테고리의 다른 글
2022.02.22 [백준] (python 파이썬) 괄호의 값 (0) | 2022.02.22 |
---|---|
2022.02.22 [백준] (python 파이썬) 하노이 탑 (0) | 2022.02.22 |
2022.02.21 [백준] (python 파이썬) 이진수 변환 (0) | 2022.02.22 |
2022.02.21 [백준] (python 파이썬) 통계학 (0) | 2022.02.21 |
2022.02.21 [백준] (python 파이썬) 색종이 만들기 (0) | 2022.02.21 |
댓글