class Solution {
private static int[] answer = new int[2];
public int[] solution(int[][] arr) {
dq(0, 0, arr.length, arr);
return answer;
}
private static void dq(int dx, int dy, int size, int[][] arr) {
if (check(dx, dy, size, arr)) {
answer[arr[dx][dy]]++;
return;
}
dq(dx, dy, size / 2, arr);
dq(dx + size / 2, dy, size / 2, arr);
dq(dx, dy + size / 2, size / 2, arr);
dq(dx + size / 2, dy + size / 2, size / 2, arr);
}
private static boolean check(int x, int y, int size, int[][] arr) {
for (int i = x; i < x + size; i++) {
for (int j = y; j < y + size; j++) {
if (arr[i][j] != arr[x][y]) return false;
}
}
return true;
}
}
'Coding Test > 프로그래머스' 카테고리의 다른 글
[프로그래머스/자바] 푸드 파이트 대회 (0) | 2023.11.27 |
---|---|
[프로그래머스/자바] 신규 아이디 추천 (1) | 2023.11.27 |
[프로그래머스/자바] 문자열 내 p와 y의 개수 (0) | 2023.11.27 |
[프로그래머스/자바] 문자열 압축 (0) | 2023.11.27 |
[프로그래머스/자바] 이상한 문자 만들기 (1) | 2023.11.27 |