쿼드압축 후 개수 세기 - 프로그래머스
분할정복 방법으로 접근한다.
def solution(arr): def compress(x, y, n): check = arr[x][y] for i in range(x, x + n): for j in range(y, y + n): if arr[i][j] != check: compress(x, y, n // 2) compress(x, y + n // 2, n // 2) compress(x + n // 2, y, n // 2) compress(x + n // 2, y + n // 2, n // 2) return ret.append(check) ret = [] compress(0, 0, len(arr)) return [ret.count(0), ret.count(1)]
비슷한 문제로 백준 1992 - 쿼드트리를 들 수 있다.
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[Programmers] 파일명 정렬 - 카카오 기출 (python) (0) | 2020.10.27 |
---|---|
[Programmers] n진수 게임 - 카카오 기출 (python) (0) | 2020.10.27 |
[Programmers] 3진법 뒤집기 - 월간 코드 챌린지1 (python) (0) | 2020.10.14 |
[Programmers] 방금그곡 - 카카오 기출 (python) (0) | 2020.09.29 |
프로그래머스 SQL 고득점 Kit 풀이 (0) | 2020.09.26 |