https://school.programmers.co.kr/learn/courses/30/lessons/84512
단어가 사전에서 몇 번째 단어인지
길이가 최대 5인 단어의 사전이 있는것이므로, 단순하게 접근한다.
사전을 모두 구축하고, 사전순으로 정렬 후, 원하는 단어가 몇 번째인지 찾는다.
정렬된 사전을 만들기 위해서 TreeSet을 구현체로 사용하였다.
앞에서 부터 순서대로 확인하면서, 원하는 단어가 나올 때까지 넘기며 찾는다.
import java.util.*;
class Solution {
int size;
Set<String> set;
String[] arr = {"A", "E", "I", "O", "U"};
public int solution(String word) {
int answer = 0;
set = new TreeSet();
// 사전 만들기
for(int i = 0 ; i < 5; ++i)
makeWord(arr[i], 1);
// 사전의 앞에서부터 원하는 단어 찾기
int count = 0;
for(String s : set){
count++;
if(s.equals(word))
return count;
}
return answer;
}
public void makeWord(String base, int depth){
set.add(base);
if(depth == 5){
return;
}
for(int i = 0 ; i < 5; ++i)
makeWord(base + arr[i], depth + 1);
}
}