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