모음사전


프로그래머스 [모음사전]

문제보기
Alt text

소스코드

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

class Solution {
    private static String[] wordPool = {"A", "E", "I", "O", "U"};
    private static List<String> alphaSet = new ArrayList<>();

    public static int solution(String word) {

        if (alphaSet.isEmpty()) {
            for (int i = 1; i <= 5; i++) {
                makeAlphaDictionary(i, 0, new String[i]);
            }

            Collections.sort(alphaSet);
        }

        return alphaSet.indexOf(word) + 1;

    }

    public static void makeAlphaDictionary(int length, int idx, String[] str) {
        if (idx >= length) {
            alphaSet.add(String.join("", str));
            return;
        }

        for (int i = 0; i < wordPool.length; i++) {
            str[idx] = wordPool[i];
            makeAlphaDictionary(length, idx + 1, str);
        }
    }
}