알고리즘 문제풀이
백준2447 파이썬 : 별 찍기
dolchimdae
2022. 3. 15. 11:11
반응형
https://www.acmicpc.net/problem/2447
2447번: 별 찍기 - 10
재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이
www.acmicpc.net
< 소스 코드 >
n = int(input())
array = [["*"]*n for _ in range(n)]
def star(n,r,c):
x = n//3
if x == 1:
array[r+1][c+1] = " "
return
else:
for i in range(r+x,r+2*x):
for j in range(c+x,c+2*x):
array[i][j] = " "
for i in range(3):
for j in range(3):
star(x,r+i*x,c+j*x)
star(n,0,0)
for a in array:
print(''.join(a))
어디서 비어야하는지 생각하면 쉽다.
n*n 2차원 배열을 *로 채우고 행열을 3으로 나눌 때마다 생기는 9개의 부분들에 대해 재귀.
재귀함수는 종료조건, 주요 처리, 재귀 로 구성하였다.
반응형