Muscardinus
쿼드압축 후 개수 세기 본문
728x90
programmers.co.kr/learn/courses/30/lessons/68936?language=javascript
const quad = (arr, size, cntArr, start) => {
const first = arr[start[0]][start[1]]; // 시작점
if (size === 1) {
first === 0 ? cntArr[0]++ : cntArr[1]++;
return;
}
let half = Math.floor(size / 2);
let flag = true;
for (let i = start[0]; i < start[0] + size; i++) {
for (let j = start[1]; j < start[1] + size; j++) {
if (first !== arr[i][j]) {
flag = false;
break;
}
}
if (!flag) break;
}
if (flag) {
first === 0 ? cntArr[0]++ : cntArr[1]++;
return;
}
quad(arr, half, cntArr, start);
quad(arr, half, cntArr, [start[0], start[1] + half]);
quad(arr, half, cntArr, [start[0] + half, start[1]]);
quad(arr, half, cntArr, [start[0] + half, start[1] + half]);
return;
}
function solution(arr) {
let answer = [0, 0];
const size = arr.length;
quad(arr, size, answer, [0, 0]);
return answer;
}
728x90
'알고리즘 문제 > [프로그래머스] Lv2' 카테고리의 다른 글
[3차] 압축 (0) | 2021.02.07 |
---|---|
이진 변환 반복하기 (0) | 2021.02.06 |
메뉴 리뉴얼 (0) | 2021.02.03 |
삼각달팽이 (0) | 2021.02.01 |
[프로그래머스] 124 나라의 숫자(Lv2) (0) | 2020.10.14 |
Comments