#include <string>
#include <vector>
#include <algorithm>
#include <string>
using namespace std;
vector<char> ch = { 'A','E','I','O','U' };
vector<char> used = { 'A','E','I','O','U' };
vector<bool> visited = { false,false,false,false,false };
vector<string> str;
void cal(int size) {
string temp = "";
for (int i = 0; i < size; i++) {
temp += used[i];
}
str.push_back(temp);
}
void dfs(int cnt, int max) {
if (cnt == max) {
cal(max);
return;
}
for (int i = 0; i < ch.size(); i++) {
used[cnt] = ch[i];
dfs(cnt + 1, max);
}
}
int find(string word) {
int result = 1;
for (int i = 0;; i++) {
if (str[i] == word)
return result;
result++;
}
}
int solution(string word) {
int answer = 0;
for (int i = 1; i <= 5; i++) {
dfs(0, i);
}
sort(str.begin(), str.end());
answer = find(word);
return answer;
}
완전탐색으로 풀어봤다. 다른 풀이법도 풀어봐야겠다.