이번에 풀어본 문제는
프로그래머스 모음사전 입니다.
import java.util.ArrayList;
import java.util.List;
class Solution {
static List<String> list;
static String [] words = {"A", "E", "I", "O", "U"};
public int solution(String word) {
int answer = 0;
list = new ArrayList<>();
dfs("", 0);
int size = list.size();
for (int i = 0; i < size; i++) {
if (list.get(i).equals(word)) {
answer = i;
break;
}
}
return answer;
}
static void dfs(String str, int len) {
list.add(str);
if (len == 5) return;
for (int i = 0; i < 5; i++) {
dfs(str + words[i], len + 1);
}
}
}
단어가 5개뿐이기 때문에 가능한 모든 경우의 수를 list에 담아주고, word와 일치하는 인덱스를 찾아 반환하면 해결할 수 있습니다.
0번 인덱스는 어차피 버리는 값이므로 dfs 시작값인 공백 문자열을 그대로 담아주었습니다.