https://school.programmers.co.kr/learn/courses/30/lessons/84512
완전탐색 하면서 글자를 HashSet 에 저장(중복제거) 하였다
HashSet 에서 출력해보니 정렬은 안되어서
배열로 받은뒤에 정렬해서 word 나올때까지 카운트하였다
import java.util.*;
class Solution {
public int solution(String word) {
char[] mat = {'A','E','I','O','U'};
HashSet<String> set = new HashSet<>();
char[] arr = new char[5];
StringBuilder sb = new StringBuilder();
brute(0, arr, mat, set, sb);
int count = 0;
String[] toarr = set.toArray(new String[0]);
Arrays.sort(toarr);
for(String ele : toarr)
{
if(ele.equals(word))
break;
count++;
//System.out.println(ele);
}
return count;
}
public void brute(int depth,char[] arr, char[] mat, HashSet<String> set, StringBuilder sb)
{
sb.setLength(0);
for(int i = 0; i < depth; ++i)
sb.append(arr[i]);
set.add(sb.toString());
if(depth == 5)
return;
for(int i = 0; i < 5; ++i)
{
arr[depth] = mat[i];
brute(depth+1, arr, mat, set, sb);
}
}
}