개발 공부/Algorithm
[ BAEKJOON ] No. 2447 : 별 찍기 - 10
뺙사우르수
2020. 3. 24. 18:14
728x90
문제 )
https://www.acmicpc.net/problem/2447
2447번: 별 찍기 - 10
재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 하나씩 있는 패턴이다. *** * * *** N이 3보다 클 경우, 크기 N의 패턴은 공백으로 채워진 가운데의 (N/3)×(N/3) 정사각형을 크기 N/3의 패턴으로 둘러싼 형태이다. 예를 들어 크기 27의 패턴은 예제 출력 1과 같다.
www.acmicpc.net
N=3 일 때,
N= 9 일 때,
가로가 x축, 세로가 y축이라고 하면,
< 노란색으로 색칠된 부분 >
: X= 1, 4, 7
그러므로, 3으로 나눈 나머지가 1이다
< 파란색으로 색칠된 부분 >
: X= 3, 4, 5 이므로, 3으로 나눈 몫이 1이다.
- python code
def drawstar(star):
printstar=[]
for i in range(3*len(star)): #행 의미
if i//len(star)==1: #3으로 나눈 몫이 1일 때
printstar.append(star[i%len(star)]+" "*len(star)+star[i%len(star)])
else:
printstar.append(star[i%len(star)]*3)
return printstar
star=["***", "* *", "***"]
N=int(input())
k=0
while N!=3:
N= int(N/3)
k+=1
for i in range(k):
star=drawstar(star)
for i in star:
print(i)
728x90