[프로그래머스] 쿼드 압축 후 개수 세기

728x90
반응형

for 문이나 재귀로 돌면서 길이를 반으로 줄여가며 전수 검사한다 

def solution(arr):
    answer = [0,0]
    n=len(arr)
    def go(x,y,l):
        cur=arr[x][y]
        for i in range(x,x+l):
            for j in range(y,y+l):
                if arr[i][j]!=cur: # 다르면 길이 짧게한다
                    ll=l//2
                    go(x,y+ll,ll) # 다음 시작점 
                    go(x+ll,y,ll)
                    go(x,y,ll)
                    go(x+ll,y+ll,ll)
                    return
        answer[cur]+=1 # 해당 범위 내 수가 다 같으면 해당 원소의 개수를 더해주면 된다 
    
    go(0,0,n)
    return answer
728x90
반응형
TAGS.

Comments