https://programmers.co.kr/learn/courses/30/lessons/68936
✅ Solution
- 재귀함수를 이용한다.
- 만약 첫번째 요소와 값이 다르다면 압축이 불가능하므로, 다시 함수를 호출한다.
- 모두 같다면 압축 가능하므로 answer에 값을 더해준다.
✅ Code
def quad(arr, x, y, l):
for i in range(x, x + l):
for j in range(y, y + l):
if arr[i][j] != arr[x][y]:
l = l // 2
quad(arr, x, y, l)
quad(arr, x, y + l, l)
quad(arr, x + l, y, l)
quad(arr, x + l, y + l, l)
return
answer[arr[x][y]] += 1
def solution(arr):
global answer
answer = [0, 0]
quad(arr, 0, 0, len(arr))
return answer
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] Level 2 - 방문 길이 (Python) (0) | 2022.06.27 |
---|---|
[프로그래머스] Level 2 - 가장 큰 정사각형 찾기 (Python) (0) | 2022.06.27 |
[프로그래머스] Level 2 - n^2 배열 자르기 (Python) (0) | 2022.06.25 |
[프로그래머스] Level 2 - 3xn 타일링 (Python) (0) | 2022.06.25 |
[프로그래머스] Level 2 - 구명보트 (Python) (0) | 2022.06.24 |