최초 23/12/09
https://school.programmers.co.kr/learn/courses/30/lessons/84512
알파벳 'A', 'E', 'O', 'I', 'U'로 구성된 크기 5 이하의 단어만 수록된 사전이 있음
ex)
"A"
"AA"
"AAA"
"AAAA"
"AAAAA"
"AAAAE"
이 때 단어가 주어질 때 해당 사전에서 몇번째 단어 인지 찾기
ex) "AAAAE" > 6
ex) "AAAE" > 10
ex) "I" > 1563
ex) "EIO" > 1189
자료형 관련: ArrayList.add(), ArrayList.indexOf()
알고리즘 관련: recursive 함수, permutation 구현 경험
디버깅 관련: 메모장에 예제 쓰는 습관
import java.util.List;
import java.util.ArrayList;
class Solution {
private final String[] chars = {"A", "E", "I", "O", "U"};
private final List<String> dict = new ArrayList<>();
public int solution(String word) {
makeWords(5, "");
return dict.indexOf(word) + 1;
}
private void makeWords(int length, String prefix) {
if (length < 1) {
return;
}
for (String char1 : chars) {
String newWord = prefix + char1;
dict.add(newWord);
makeWords(length - 1, newWord);
}
}
}