더북(TheBook)
private static class Count {
    public final int zero;
    public final int one;
    
    public Count(int zero, int one) {
        this.zero = zero;
        this.one = one;
    }
}

이제 하나의 상태가 나타내는 부분 문제를 해결할 수 있는 재귀 메서드를 작성해봅시다. 상태 변수는 offsetX, offsetY, size이므로 이 3개의 변수를 매개변수로 받습니다. 여기에 추가로 2차원 배열 정보 arr까지 전달받아 부분 문제를 해결하는 재귀 메서드 count()를 다음과 같이 선언합니다.

private Count count(int offsetX, int offsetY, int size, int[][] arr) {
    
}

가장 먼저 종료 조건을 구현해봅시다. 재귀 정의에 따르면 종료 조건은 정사각형 영역 안의 모든 원소가 같은 값을 가질 때입니다. 이를 위해 다음과 같이 모든 원소를 순회하며 검사를 진행합니다.