더북(TheBook)

원소가 섞여 있다면 재귀 메서드를 사용하여 점화식에 따라 부분 문제를 해결해야 합니다. 점화식에서는 4개의 작은 정사각형 결과 합을 구해야 하므로, 이를 간단하게 구현하고자 Count 클래스에 두 Count 객체를 합하는 add() 메서드를 정의하겠습니다.

private static class Count {
    public final int zero;
    public final int one;
 
    public Count(int zero, int one) {
        this.zero = zero;
        this.one = one;
    }
 
    public Count add(Count other) {
        return new Count(zero + other.zero, one + other.one);
    }
}

이제 add() 메서드와 점화식을 이용하여 다음과 같이 재귀 호출을 한 후 모든 결과를 합해서 반환합니다. add() 메서드에서 새로운 Count 객체를 반환하도록 구현했기 때문에 재귀 호출로 얻게 된 Count 객체들을 간편하게 합칠 수 있습니다.

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