Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Archives
Today
Total
관리 메뉴

csct3434

[level 2] 쿼드압축 후 개수 세기 - 68936 본문

프로그래머스

[level 2] 쿼드압축 후 개수 세기 - 68936

csct3434 2024. 2. 29. 03:26

문제 링크

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

class Solution {

    private int[] count = new int[2];

    public int[] solution(int[][] arr) {
        solve(arr, 0, 0, arr.length);
        return count;
    }

    private void solve(int[][] arr, int x, int y, int size) {
        if (isCompressible(arr, x, y, size)) {
            count[arr[x][y]]++;
            return;
        }

        size /= 2;

        solve(arr, x, y, size);
        solve(arr, x + size, y, size);
        solve(arr, x, y + size, size);
        solve(arr, x + size, y + size, size);
    }

    private boolean isCompressible(int[][] arr, int x, int y, int size) {
        for (int i = x; i < x + size; i++) {
            for (int j = y; j < y + size; j++) {
                if (arr[x][y] != arr[i][j]) {
                    return false;
                }
            }
        }
        return true;
    }

}