마지막으로 점화식은 사용할 수 있는 모든 문자를 word에 이어 붙여야 합니다. 사용할 수 있는 문자들을 클래스의 맨 위에 선언해주고, 이를 이용하여 재귀를 진행합니다.
public class Solution {
private static final char[] CHARS = "AEIOU".toCharArray();
private List<String> generate(String word) {
List<String> words = new ArrayList<>();
words.add(word);
if (word.length() == 5) return words;
for (char c : CHARS) {
words.addAll(generate(word + c));
}
return words;
}
이렇게 generate() 메서드가 완성되었습니다. 만들 수 있는 단어들은 A, E, I, O, U로 시작하는 단어들입니다. 따라서 generate(“A”), generate(“E”), generate(“I”), generate(“O”), generate(“U”)를 호출하면 만들 수 있는 모든 단어를 구할 수 있습니다. 하지만 조금 더 간단하게 빈 문자열을 이용하여 generate("")처럼 호출함으로써 generate() 메서드 안의 반복문이 모든 가능한 단어를 생성하게 할 수도 있습니다.