inblog logo
|
stupefyee
    알고리즘문제풀기

    [JAVA 문제 풀이] 352. 쿼드압축 후 개수 세기

    프로그래머스 (68936)
    Stupefyee's avatar
    Stupefyee
    Jul 01, 2025
    [JAVA 문제 풀이] 352. 쿼드압축 후 개수 세기
    Contents
    내가 작성한 코드
    school.programmers.co.kr
    https://school.programmers.co.kr/learn/courses/30/lessons/68936
    notion image
     

    내가 작성한 코드

    class Solution { public int[] solution(int[][] arr) { int[] answer = new int[2]; // answer[0] = 0의 개수, answer[1] = 1의 개수 zip(arr, 0, 0, arr.length, answer); return answer; } private void zip(int[][] arr, int row, int col, int size, int[] answer) { // 현재 영역이 전부 같은 숫자인지 확인 if (isAllSame(arr, row, col, size)) { answer[arr[row][col]]++; // 0이면 answer[0], 1이면 answer[1] 증가 return; } // 4개로 분할하여 재귀 처리 int newSize = size / 2; zip(arr, row, col, newSize, answer); // 좌상 zip(arr, row, col + newSize, newSize, answer); // 우상 zip(arr, row + newSize, col, newSize, answer); // 좌하 zip(arr, row + newSize, col + newSize, newSize, answer); // 우하 } // 해당 영역이 모두 같은 값인지 확인하는 함수 private boolean isAllSame(int[][] arr, int row, int col, int size) { int value = arr[row][col]; for (int i = row; i < row + size; i++) { for (int j = col; j < col + size; j++) { if (arr[i][j] != value) return false; } } return true; } }
    Share article
    Contents
    내가 작성한 코드

    stupefyee

    RSS·Powered by Inblog