더북(TheBook)

마지막으로 점화식은 사용할 수 있는 모든 문자를 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() 메서드 안의 반복문이 모든 가능한 단어를 생성하게 할 수도 있습니다.

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