BOJ 1759번 암호만들기

|


import java.util.Arrays;
import java.util.Scanner;

public class BOJ_1759 {


    static String[] alpha;

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String[] nm = sc.nextLine().split("\\s");
        int n = Integer.parseInt(nm[0]);
        int m = Integer.parseInt(nm[1]);

        alpha = sc.nextLine().split("\\s");
        Arrays.sort(alpha);

        solve(n, alpha, "", 0);


    }

    private static void solve(int n, String[] alpha, String password, int i) {
        if (n == password.length()) {
            if (check(password)) {
                System.out.println(password);
                return;
            }
        }

        if (i >= alpha.length)
            return;

        solve(n, alpha, password + alpha[i], i + 1);
        solve(n, alpha, password, i + 1);
    }

    private static boolean check(String password) {
        char[] chars = password.toCharArray();

        int mo = 0;
        int ja = 0;
        for (char alpha : chars) {
            if (alpha == 'a' || alpha == 'e' || alpha == 'i' || alpha == 'o' || alpha == 'u') {
                mo++;
            } else {
                ja++;
            }
        }
        return mo >= 1 && ja >= 2;
    }


}