백준 1030 프랙탈 평면

김민규·6일 전
0

문제풀이

목록 보기
22/22

Unsolved

# 무지성 재귀

def make(s, N, K):
    # global BLANK
    if s == 1:
        pad = '0' * N
        center = ('0'*BLANK) + ('1'*K) + ('0'*BLANK)
        return [pad]*BLANK + [center] * K + [pad]*BLANK

    mini = make(s-1, N, K)
    
    pad = []
    for r in mini:
        pad.append(r*N)
    center = []
    
    for r in mini:
        # print(r)
        center.append(r*BLANK + '1'*K*(N**(s-1)) + r*BLANK)
    # print(center[0])
        
    return pad*BLANK + center * K + pad*BLANK


s, N, K, R1, R2, C1, C2 = map(int, input().split())
BLANK = ((N-K)//2)
# make(s, N, K)
arr = make(s, N, K)

for i in range(R1, R2+1):
    print(arr[i][C1:C2+1])

무지성으로 재귀돌렸더니 메모리 초과가 나왔다.

패턴을 이해하면 풀 수 있을 것으로 보인다.

profile
공부 기록용

0개의 댓글

관련 채용 정보