728x90

# 출처 : https://www.acmicpc.net/problem/2447

 

2447번: 별 찍기 - 10

재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이

www.acmicpc.net


# 풀이

 


# 코드

def RECT(start, mid1, mid2, end):
    global arr
    for i in range(end):
        for j  in range(end):
            if (i==start+1 or i==mid1+1, j==mid2+1) \
               and (j==start+1 or j==mid1+1, j==mid2+1): continue
            if (i==mid1 or i==mid1+1 or i==mid1+2) \
               and (j==mid1 or j==mid1+1 or j==mid1+2): continue
            print("hi")
            arr[i][j]='*'
        
def DEVICE(start, end, N): #입력 변수: 시작위치, 크기
    mid_1= int(N/3); mid_2=int(N/3)*2 #9(3,6), 27(9(3,6),18(21,24))
    mid_v1=start+mid_1; mid_v2=start+mid_2
    if mid_v2-mid_v1 == 3:
        RECT(start, mid_v1, mid_v2, end) #0, 3, 6, 9
    else:
        DEVICE(start, mid_v1, mid_v1-start)
        DEVICE(mid_v1, mid_v2, mid_v2-mid_v1)
        DEVICE(mid_v2, end, end-mid_v2)

N=int(input())
arr=[[' ']*N for _  in range(N)]
DEVICE(0, N, N)
print(arr)
728x90

+ Recent posts