더북(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) {
    
}

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

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.