더북(TheBook)

이를 정리하면 다음과 같이 재귀를 정의할 수 있습니다.

▼ 표 5-6 모음 사전 문제의 재귀 정의

상태

(word)

word로 시작하는 모든 단어

종료 조건

(길이가 5인 word) = word

점화식

(word) = [word] + (word + ‘A’) + (word + ‘E’) + (word + ‘I’) + (word + ‘O’) + (word + ‘U’)

 

코드 작성

앞서 정의한 재귀를 이용하여 코드를 작성해봅시다.

먼저 상태가 나타내는 부분 문제를 해결하는 generate() 메서드를 작성해봅시다. 이 부분 문제는 word로 시작하는 모든 단어를 구해야 하므로 List를 반환합니다.

private List<String> generate(String word) {
    // 종료 조건, 점화식 구현
}

종료 조건은 word 길이가 5일 때 바로 word를 반환하는 것입니다. 이는 다음과 같이 구현할 수 있습니다.

private List<String> generate(String word) {
    List<String> words = new ArrayList<>();
    words.add(word);
    
    if (word.length() == 5) return words;
    
    // 점화식 구현
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.