[programmers/py] [PCCE 기출문제] 쿼드압축 후 개수 세기

승민·2024년 3월 17일

알고리즘

목록 보기
81/171

쿼드압축 후 개수 세기

https://school.programmers.co.kr/learn/courses/30/lessons/68936

문제 설명

  • 링크 참고

문제 풀이

재귀 함수를 이용해서 풀이
만약 숫자가 다르면 1/4로 사각형을 구분해서 재귀함수를 돌린다.

def solution(arr):
    global answer
    answer = [0,0]
    quad(arr, answer, len(arr))
    return answer
    
def quad(arr, ans, n):
    x,y,now = ans[0], ans[1], arr[ans[0]][ans[1]]
    
    for i in range(n):
        for j in range(n):
            if arr[x+i][y+j] != now:
                quad(arr, [x, y], n // 2) # 나눠진 왼쪽 위
                quad(arr, [x, y+n//2], n // 2) # 나눠진 왼쪽 아래
                quad(arr, [x+n//2, y], n // 2) # 나눠진 오른쪽 위
                quad(arr, [x+n//2, y+n//2], n // 2) # 나눠진 오른쪽 아래
                return
    answer[now] += 1

0개의 댓글