https://programmers.co.kr/learn/courses/30/lessons/68936
예 #1을 예제로 살펴보자.
배열 arr의 길이는 4이다.
처음엔 0,0부터 4,4까지 같은 값인지를 확인한다. 같은 경우 result에서 그 값을 +1해준다.
다르다면 총 4개의 사각형으로 나눠져서 각각 시작점이 (0,0),(0,2),(2,0),(2,2)인 경우에 길이 2만큼 돌며, 같은 값인지를 확인한다.
def solution(arr):
result=[0,0]
length=len(arr)
def compression(a,b,l):
start=arr[a][b]
for i in range(a,a+l):
for j in range(b,b+l):
if arr[i][j]!=start:
l=l//2
compression(a,b,l)
compression(a,b+l,l)
compression(a+l,b,l)
compression(a+l,b+l,l)
return
result[start]+=1
compression(0,0,length)
return (result)